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()
的大小是无限的?
同样,文档将TINYBLOB
、MEDIUMBLOB
等列为可接受的关键字,但没有为它们提供任何特定含义。它们是否只是 BLOB
的别名以与其他数据库方言兼容?
(我看到 BINARY
类型的限制为 2Gb,这让我认为 BLOB
没有限制,因为它没有指定。)
【问题讨论】:
【参考方案1】:BINARY
/ VARBINARY
数据类型仅限于可用内存,并且它们也有一个略低于 2 GB 的严格限制(仅限于 Java 中的最大数组大小)。请注意,BINARY
仅应在您具有已知固定大小的值时使用。在 H2 1.4.200 中,BINARY
是 VARBINARY
的别名,但在尚未发布的下一个版本中它们是不同的。
BLOB
值可以大得多。它们不会加载到内存中,而是流式传输。文档中有一些关于限制的过时信息:https://h2database.com/html/advanced.html#limits_limitations
但是这部分文档是为 H2 的旧存储引擎编写的,H2 默认使用另一个存储引擎。无论如何,这两个引擎都支持大型二进制和字符对象。
TINYBLOB
、MEDIUMBLOB
等没有特殊含义,只是为了兼容。不要使用它们。
【讨论】:
以上是关于H2 BLOB 数据类型大小的主要内容,如果未能解决你的问题,请参考以下文章