Разница в производительности для STRING (MAX)?

Есть ли снижение производительности (или улучшение) за использование STRING(MAX) вместо некоторого фиксированного ограничения, такого как STRING(256)?


person Mike Curtiss    schedule 30.08.2017    source источник


Ответы (1)


Неа. STRING(MAX) обрабатывается точно так же, как струны ограниченной длины под капотом. То же самое касается BYTES(MAX). Так что разницы в производительности нет.

Основная причина использования фиксированного лимита - наличие логических ограничений, которые вы хотите применить в своей схеме. Например: если вы используете STRING для хранения двухбуквенных кодов стран, вы можете захотеть использовать STRING(2).

Обратите внимание, что согласно документам, вы всегда можете изменить длину предел для строки, за исключением одной оговорки:

  • Поддерживаемые обновления схемы: увеличьте или уменьшите ограничение длины для типа STRING или BYTES (в том числе до MAX), если это не столбец первичного ключа, унаследованный одной или несколькими дочерними таблицами.
person Mike Curtiss    schedule 30.08.2017
comment
Вы знаете, что это за MAX? - person danthegoodman; 21.09.2020
comment
Я считаю, что ответ - 10 МБ (~ 10 МБ). Per: cloud.google.com/spanner/docs/data-types#string_type Максимальный размер значения столбца составляет 10 МБ, что относится к скалярным типам и типам массивов. - person Mike Curtiss; 22.09.2020
comment
Да, я везде это искал! Предполагал, что на документах будет меньше, ха-ха - person danthegoodman; 22.09.2020