Имеет ли значение размер полей базы данных?

У меня есть таблица базы данных, позвольте ей назвать ее странами. У всех стран есть имена, короткие имена и континенты. Предположим, что самое длинное название любой страны в мире - 54 символа. Должен ли я установить максимальный размер до 54 или я должен установить его, например. 64 или что-то еще? Будет ли мой выбор влиять на запросы или хранение каким-либо образом?

Я знаю, что это может показаться предварительным оптимизацией, но я часто выбираю 32, 64, 128 и т.д., и я хотел бы знать, если это имеет значение.

Спасибо

Ответ 1

Твердая СУБД должна знать, что лучше для нее. Если вам нужно "54 символа", но база данных может улучшить оптимизацию поиска с 64 символами, она автоматически расширит поле данных. Если это не так, вы сохранили 12 символов в строке.

Я не думаю, что вам нужно беспокоиться, просто напишите, что вам нужно.

Ответ 2

Ответы будут специфичными для РСУБД:

Если вы используете SQL Server (2000 и далее), varchar использует пространство для фактических символов, хранящихся в нем (плюс небольшие накладные расходы), до максимального размера, как указано.

Как правило, не оптимизируйте, пока у вас не возникнет проблема.

Ответ 3

Зависит от типа данных. Например, в ORACLE - тип данных varchar2 будет хорошим выбором для строк переменной длины. Вам нужно только определить максимальную длину строки - varchar2 (maxsize). Это означало бы, что любая строка длиной до 10 будет соответствовать. Длина столбца будет зависеть от фактической строки, сохраненной в ней.

См. текст ссылки

В вашем случае, если вы абсолютно уверены, что имя страны не более 54 символов, я бы использовал тип данных с переменным размером 54.

Ответ 4

Если вы используете SQL Server, я бы настоятельно рекомендовал НЕ использовать VARCHAR (8000) или VARCHAR (MAX) для всех полей..... вам нужно, чтобы здравый смысл преобладал здесь - сделайте поле размером с вас подумайте, что вам, вероятно, понадобится, добавьте немного лишнего для неожиданной длины, и вы закончите: -)

Кроме того, я считаю, что неплохо держать его на нескольких длинах, которые вы используете снова и снова. Например. Я использую VARCHAR (255) для большинства полей, таких как адрес улицы или электронная почта и т.д., Которые могут быть немного длиннее, VARCHAR (50) для таких вещей, как номера телефонов и т.д., И VARCHAR (20) для коротких строк, таких как почтовый индекс и т.д..

Будьте прагматичны в этом - найдите стиль, который будет работать для вас. Не переопределяйте, но не сходите в другую сторону.

Марк