Подтвердить что ты не робот

Определяет ли размер объявленного поля varchar какое-либо влияние в PostgreSQL?

Является ли VARCHAR (100) лучше, чем VARCHAR (500) с точки зрения производительности? Как насчет использования диска?

Говоря о PostgreSQL сегодня, не какая-то база данных в истории.

4b9b3361

Ответ 1

Они идентичны.

В документации PostgreSQL:

http://www.postgresql.org/docs/8.3/static/datatype-character.html

Совет: нет производительности различия между этими тремя типами, кроме увеличения размера хранилища, когда используя пустой материал, и несколько дополнительные циклы для проверки длины, когда хранение в ограниченных по длине колонка. Хотя символ (n) имеет преимущества производительности в некоторых других системы баз данных, он не имеет таких преимущества в PostgreSQL. В большинстве текстовые или текстовые ситуации следует использовать вместо этого.

Здесь они говорят о различиях между char (n), varchar (n) и текстом (= varchar (1G)). Официальная история состоит в том, что нет никакой разницы между varchar (100) и текстом (очень большой varchar).

Ответ 2

TEXT/is/то же, что и VARCHAR без явной длины, текст

"Требование хранения для короткого строка (до 126 байтов) - 1 байт плюс фактическая строка, которая включает пробел в случае персонаж. Более длинные строки имеют 4 байта накладные расходы вместо 1. Длинные строки сжимаются системой автоматически, поэтому физическое требование на диске может быть меньше. Очень длинные значения также сохраняются в фоновые таблицы, чтобы они не препятствовать быстрому доступу к более короткому значения столбца. В любом случае длинная строка символов, которая может храниться около 1 ГБ".

относится как к VARCHAR, так и к TEXT (поскольку VARCHAR (n) - это ограниченная версия TEXT). Ограничение вашего VARCHARS искусственно не имеет реальных преимуществ при хранении или производительности (накладные расходы основаны на фактической длине строки, а не на длине лежащего в основе varchar), за исключением, возможно, для сравнения с подстановочными знаками и регулярными выражениями (но на уровне, где это начинается вопрос, вы, вероятно, должны смотреть на нечто вроде PostgreSQL полнотекстовой поддержки индексирования).