varchar or text

serega86

Новичок
varchar or text

Подскажите какой тип лучше использовать для поля в которое будет вставляться от 0 д 200 символов ?

1) varchar(200)
или
2) text
 

camka

не самка
fixxxer
Вы не поверите, но предел поля типа varchar уже давно не 255 символов.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
camka
Не все ж 5 юзают...
 

andymc

Новичок
при использовании text потеря 1 байт на каждый ряд (для хранения длины) по сравнению с varchar
 

fixxxer

К.О.
Партнер клуба
на 5ке много что по другому, но это еще неактуально пока :)
 

serega86

Новичок
Автор оригинала: andymc
при использовании text потеря 1 байт на каждый ряд (для хранения длины) по сравнению с varchar
ну это понятно ...

как я понял обявляя varchar(200) - будет выделено 200байт для строчки любой длинны, а объявляя как text будет выделено столько байт сколько требуеться в каждомконкретном случае + 1
так ?
 

AmdY

Пью пиво
Команда форума
а при большом количестве одновременных запросов к бд иногда лучше использовать char, будет избыточность, но производительность возрастёт.
 

andymc

Новичок
serega86
Ненмого не так.
- varchar занимает M + 1 байт
- text - M + 2 байта
, где М - длина строки (именно фактическая длина, а не максимум)
В фразе varchar(200) - 200 - максимум.
 

kruglov

Новичок
Я думаю, что 1-2-3-8 лишних байтов, при хранении сотен символов - это копейки. longtext наше все.

А то как hash пароля при апгрейде алгоритма crypt вдруг не влезет в предусмотренный для него 3 года назад varchar(n), вот это будет весело.
 

andymc

Новичок
kruglov
Если в таблице 40000 рядов, то лишний 1 байт - это 40 кб
 

camka

не самка
fixxxer
Может тогда лучше спросить у товарища serega86, какую версию он использует, нежели обучать устаревающим технологиям?
 

kruglov

Новичок
andymc
Если в таблице 40000 рядов, то сама таблица может быть 40 Мб - и плевать на 40 кб.
 

Апельсин

Оранжевое создание
AmdY, вырастет производительность или нет зависит от типа таблицы. Для MyISAM CHAR может быть быстрее, InnoDB одинаково обрабатывает как CHAR так и VARCHAR, но из-за того что данные в VARCHAR могут быть меньше, чем объявлен столбец VARCHAR может быть быстрее для InnoDB.
 
Сверху