【问题标题】:What is the difference between VARBINARY and BLOB in hsqldb?hsqldb中的VARBINARY和BLOB有什么区别?
【发布时间】:2013-02-16 03:46:05
【问题描述】:

我想将文件存储在 hsqldb 数据库中。 有些文件是文本文件,大小从几 KB 到数百 KB,有些是二进制文件,大小可能达到几 MB。

根据文档 (http://hsqldb.org/doc/guide/sqlgeneral-chapt.html#sgc_binary_types),我可以使用 VARCHAR、VARBINARY 和 BLOB 类型来存储文件。

我想我会将文件存储为二进制文件,以便能够以相同的方式存储文本和二进制文件。但我不明白这两种二进制类型——VARBINARY 和 BLOB 之间的区别,只是它们的默认长度值不同。

它们之间有什么区别?哪一种更适合文件内容存储?

【问题讨论】:

    标签: blob hsqldb


    【解决方案1】:

    VARCHAR 或 VARBINARY 类型不是存储数千字节文件的最佳类型。

    您可以使用 BLOB 类型。 this 和 VARBINARY 的区别在于 BLOB 和 CLOB 使用的大对象的专用存储机制。

    更多详情请看这里:

    http://hsqldb.org/doc/guide/management-chapt.html#mtc_large_objects

    【讨论】:

    • 如果对象是不可变的,即一旦插入,它们只能被删除或获取怎么办?此外,它们的大小可能从 500 到 25,000 字节不等(我不再谈论文件)。那么使用 VARBINARY 合理吗?我在问,因为在这种情况下使用 BLOB 可能会导致 HD 空间利用率不佳。
    • 您能否详细说明为什么使用 BLOB 比 VARBINARY 更有效?
    • 500-25000 不会太大,可以与 VARCHAR 一起使用。 BLOB 有一个单独的存储,对于较大的 lob 更有效。
    猜你喜欢
    • 2015-05-31
    • 1970-01-01
    • 1970-01-01
    • 2011-09-01
    • 2012-07-22
    • 2012-05-11
    • 2011-04-04
    • 2010-10-02
    相关资源
    最近更新 更多