MySQL TEXT или VARCHAR - PullRequest
       22

MySQL TEXT или VARCHAR

9 голосов
/ 09 ноября 2010

У нас есть очень большая историческая таблица, которая содержит столбец, содержащий не более 500 символов UTF8, и дисковое пространство очень быстро увеличивается!

У нас по крайней мере 2 миллиона строк в день ... и мы задавались вопросом, что будет лучше (в основном в хранилище, но и в производительности)? Текст или VARCHAR (512)?

Ответы [ 3 ]

11 голосов
/ 09 ноября 2010

VARCHAR, вероятно, предпочтительнее в вашем случае с точки зрения хранения и производительности. Посмотреть эту часто перепечатанную статью .

2 голосов
/ 09 ноября 2010

Это полезная информация; Я думаю, что в целом ответом будет varchar, как правило, лучшая ставка.

1 голос
/ 09 ноября 2010

Из руководства MySQL:

В большинстве случаев вы можете рассматривать столбец BLOB как столбец VARBINARY, который может быть настолько большим, насколько вам нравится.Точно так же вы можете рассматривать столбец TEXT как столбец VARCHAR.BLOB и TEXT отличаются от VARBINARY и VARCHAR следующими способами:

There is no trailing-space removal for BLOB and TEXT columns when values

сохраняются или извлекаются.До MySQL 5.0.3 это отличается от VARBINARY и VARCHAR, для которых завершающие пробелы удаляются при сохранении значений.

On comparisons, TEXT is space extended to fit the compared object,

точно так же, как CHAR и VARCHAR.

For indexes on BLOB and TEXT columns, you must specify an index

длина префикса,Для CHAR и VARCHAR длина префикса необязательна.См. Раздел 7.5.1, «Индексы столбцов».

BLOB and TEXT columns cannot have DEFAULT values.

http://dev.mysql.com/doc/refman/5.0/en/blob.html

...