2013-05-26 5 views
2

На данный момент у нас есть поле varchar (255). Один из наших пользователей попросил увеличить поле примерно в 10 раз по сравнению с варчаром (2048). Учитывая его прецеденты, он представляется разумной просьбой.Значительно увеличивает длину полей полей varchar на производительность?

Данное поле не проиндексировано, оно не является частью каких-либо объединений и никогда не включается в какие-либо предложения.

Я понимаю, что меньшие увеличения (скажем, от 50 до 100) не оказывают никакого влияния, но делает ли это все еще более значительным увеличение размера?

+0

Интересный вопрос: почему в поле с 255 символами имеется допустимый характер пользователя для символа 2048? –

ответ

2

Apparently not with a sidenote:

«При хранении, VARCHAR (255) достаточно умен, чтобы хранить только длину, которые нужны на данном ряду, в отличие от CHAR (255), который всегда будет хранить 255 символов

.

Но поскольку вы отметили этот вопрос в MySQL, я упомянул отзыв о MySQL: когда ваш запрос неявно генерирует временную таблицу, например, при сортировке или GROUP BY, поля VARCHAR преобразуются в CHAR, чтобы получить преимущество от работы с строки фиксированной ширины. Если вы используете много полей VARCHAR (255) для данных, которые не должны быть такими длинными, это может сделать временную таблицу очень большой.

Лучше всего определить столбец в зависимости от типа данных, которые вы собираетесь хранить. Трудно понять, какой самый длинный почтовый адрес, конечно, поэтому многие люди выбирают длинный VARCHAR, который, безусловно, длиннее любого адреса. И 255 является обычным, потому что не может быть максимальная длина VARCHAR в некоторых базах данных заре времени (а также PostgreSQL до совсем недавно).»

Билл Karwin

Так что в основном зависит от конкретного пользователя, для этого поля, если вы не используете GROUP BY с этой областью, то нет никаких проблем

1

в вашем случае нет никакой разницы между VARCHAR (255) и VARCHAR (2048)

..

В MySQL временные таблицы и таблицы MEMORY хранят VA Столбец RCHAR как столбец фиксированной длины, дополненный максимальной длиной. Если вы сконструируете столбцы VARCHAR намного больше, чем вам нужен наибольший размер, вы будете потреблять больше памяти, чем вам нужно. Это влияет на эффективность кеш-памяти, скорость сортировки и т. Д.

Смежные вопросы