как я понял обявляя varchar(200) - будет выделено 200байт для строчки любой длинны, а объявляя как text будет выделено столько байт сколько требуеться в каждомконкретном случае + 1
так ?
serega86
Ненмого не так.
- varchar занимает M + 1 байт
- text - M + 2 байта
, где М - длина строки (именно фактическая длина, а не максимум)
В фразе varchar(200) - 200 - максимум.
AmdY, вырастет производительность или нет зависит от типа таблицы. Для MyISAM CHAR может быть быстрее, InnoDB одинаково обрабатывает как CHAR так и VARCHAR, но из-за того что данные в VARCHAR могут быть меньше, чем объявлен столбец VARCHAR может быть быстрее для InnoDB.