Postgres будет хранить длинные типы varlena в расширенном хранилище под названием TOAST .
В случае строк, он сохраняет данные в строке до 126 байт (потенциально означает меньше 126 символов для многобайтового содержимого), а затем отправляет его во внешнее хранилище.
Вы можете увидеть, где хранятся данные, используя psql:
\dt+ yourtable
Кроме того, обратите внимание, что с точки зрения Postgres, нет абсолютно никакой разницы (относительно хранения) между объявлением типа столбца как varchar
или varchar(large_number)
- он будет сохранен точно таким же образом. Однако использование varchar(large_number)
приводит к очень небольшому снижению производительности из-за проверки длины строки.