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