Размер типа данных BLOB H2 - PullRequest
0 голосов
/ 25 февраля 2020

Имеет ли H2 понятие определенного ограничения размера c для типа данных BLOB? Документация (https://h2database.com/html/datatypes.html#blob_type) гласит, что вы можете по желанию установить предел, например BLOB(10K), значит ли это, что BLOB() не ограничен по размеру?

Аналогично, списки документации TINYBLOB, MEDIUMBLOB и др. c. как приемлемые ключевые слова, но не дает никакого конкретного c значения для них. Являются ли они просто псевдонимами BLOB для совместимости с другими диалектами базы данных?

(я вижу, что тип BINARY имеет ограничение 2 ГБ, что заставляет меня думать, что BLOB не имеет ограничение, поскольку оно не указано.)

1 Ответ

1 голос
/ 25 февраля 2020

BINARY / VARBINARY типы данных ограничены доступной памятью, а также имеют жесткое ограничение чуть ниже 2 ГБ (оно ограничено максимальным размером массива в Java). Обратите внимание, что BINARY следует использовать только тогда, когда у вас есть значения с известным фиксированным размером. В H2 1.4.200 BINARY является псевдонимом для VARBINARY, но в еще не выпущенной следующей версии они отличаются.

BLOB значения могут быть намного больше. Они не загружаются в память, вместо этого они транслируются. В документации есть некоторая устаревшая информация об ограничениях: https://h2database.com/html/advanced.html#limits_limitations, но эта часть документации была написана для старого механизма хранения H2, H2 по умолчанию использует другой механизм хранения. В любом случае оба движка поддерживают большие двоичные и символьные объекты.

TINYBLOB, MEDIUMBLOB, et c. не имеют никакого особого значения, они только для совместимости. Не используйте их.

...