Я создаю масштабируемое приложение, и мне нужно знать, какой тип данных использовать для небольших строк (50-1000 символов). Я слышал, что VARCHAR имеет фиксированный размер и поэтому может быть быстрее, но с TEXT символы могут храниться в отдельном CLOB и только указатель в данных строки. Это будет меньше, но будет ли это иметь какое-либо значительное снижение производительности?
Какой тип данных MySQL более эффективен для масштабируемых приложений? ТЕКСТ или ВАРЧАР?
Ответы (1)
Значения в столбцах VARCHAR представляют собой строки переменной длины. Длина может быть указана как значение от 0 до 255 до MySQL 5.0.3 и от 0 до 65 535 в 5.0.3 и более поздних версиях.
Если у вас есть MySQL 5.0.3 или более поздняя версия, и вам не нужно более 65 тыс. символов, не имеет большого значения, какой из них вы используете, потому что и TEXT, и VARCHAR имеют переменный размер в памяти. Если у вас много текстов длиной менее 255 символов, вы можете сэкономить один байт для них, выбрав VARCHAR.
Но в совершенно другом аспекте я бы всегда выбирал тип данных, который ему больше подходит. Если вы храните текст, который семантически является текстом, который может легко превышать «стандартные» размеры, вы должны использовать тип данных TEXT.