H2 BLOB 数据类型大小

Posted

技术标签:

【中文标题】H2 BLOB 数据类型大小【英文标题】:H2 BLOB data type size 【发布时间】:2020-02-25 14:26:29 【问题描述】:

H2 是否有 BLOB 数据类型的特定大小限制的概念?文档 (https://h2database.com/html/datatypes.html#blob_type) 声明您可以选择设置限制,例如BLOB(10K),那么这是否意味着BLOB() 的大小是无限的?

同样,文档将TINYBLOBMEDIUMBLOB 等列为可接受的关键字,但没有为它们提供任何特定含义。它们是否只是 BLOB 的别名以与其他数据库方言兼容?

(我看到 BINARY 类型的限制为 2Gb,这让我认为 BLOB 没有限制,因为它没有指定。)

【问题讨论】:

【参考方案1】:

BINARY / VARBINARY 数据类型仅限于可用内存,并且它们也有一个略低于 2 GB 的严格限制(仅限于 Java 中的最大数组大小)。请注意,BINARY 仅应在您具有已知固定大小的值时使用。在 H2 1.4.200 中,BINARYVARBINARY 的别名,但在尚未发布的下一个版本中它们是不同的。

BLOB 值可以大得多。它们不会加载到内存中,而是流式传输。文档中有一些关于限制的过时信息:https://h2database.com/html/advanced.html#limits_limitations 但是这部分文档是为 H2 的旧存储引擎编写的,H2 默认使用另一个存储引擎。无论如何,这两个引擎都支持大型二进制和字符对象。

TINYBLOBMEDIUMBLOB等没有特殊含义,只是为了兼容。不要使用它们。

【讨论】:

以上是关于H2 BLOB 数据类型大小的主要内容,如果未能解决你的问题,请参考以下文章

我的MYSQL学习心得 数据类型

jdbc 读写 blob 类型有哪些方式?

mysql字段加密

mysql数据库中text类型不设置大小默认大小事多少

TinyBlobBlobMediumBlobLongBlob大小

Blob数据类型数据库事务