【问题标题】:Oracle BLOB vs VARCHAROracle BLOB 与 VARCHAR
【发布时间】:2011-04-10 15:51:16
【问题描述】:

我需要在表的列中存储一个(大)SQL 查询,我想使用BLOB 字段。明确地说,我想存储查询,而不是结果。

最好使用什么:BLOBVARCHAR?或者别的什么?

【问题讨论】:

    标签: sql oracle types blob varchar


    【解决方案1】:

    另一个选项是 CLOB。对于文本数据,使用 CLOB 比使用 BLOB 更合乎逻辑。即使您不必分析数据库中的数据,使用 CLOB 可能仍然有意义,因为即使查看数据也更容易。

    某些功能只能使用 VARCHAR。例如,您只能在 VARCHAR 列上创建索引(我这里不是在谈论全文索引,我知道您可以在 CLOB 列上创建全文索引)。您不能有 CLOB 或 BLOB 主键(我想您不需要它;仅作为示例)。

    大多数 VARCHAR 操作比 CLOB / BLOB 操作快得多。如果使用 VARCHAR,即使读取数据也会更快(除非列中确实有很多文本)。 VARCHAR 需要较少的内存开销,但它们通常会在内存中完全读取,因此最后 VARCHAR 可能仍会使用更多内存。

    【讨论】:

    • 这是最好的答案,因为它解释了 varchar 和 clob 列之间的功能和性能差异。
    【解决方案2】:

    如果您要存储的文本数据无法放入 VarChar2,那么我认为您应该使用 CLOB

    引用OraFaq:*CLOB(字符大对象)是一种 Oracle 数据类型,最多可容纳 4 GB 数据。 CLOB 用于存储文本很方便。 *

    【讨论】:

    • 是的,我认为我的文本不适合 VARCHAR。谢谢你的解释。
    【解决方案3】:

    短字符串 → VARCHAR

    长字符串 → CLOB

    二进制数据 → BLOB

    【讨论】:

      【解决方案4】:

      它们都是不同的。

      您使用BLOB 来存储二进制数据,例如图像、音频和其他多媒体数据。

      VARCHAR 存储任意大小的文本,直到达到限制。

      【讨论】:

        猜你喜欢
        • 2010-12-12
        • 1970-01-01
        • 2019-09-05
        • 2011-12-21
        • 2010-09-14
        • 2018-05-07
        • 2011-12-07
        • 1970-01-01
        • 2011-03-07
        相关资源
        最近更新 更多