Какой тип данных оставляет больше свободное место TINYTEXT или VARCHAR для переменной длины данных в MySQL?

Я должен хранить данные в MySQL. Его длина не фиксируется, это могли быть 255 или 2 символа долго. Я должен использовать TINYTEXT или VARCHAR для оставления свободного места (скорость не важна)?

6
задан John M. 25 March 2010 в 00:29
поделиться

2 ответа

Что касается места для хранения данных, VARCHAR (255) и TINYTEXT эквивалентны:

VARCHAR (M) : L + 1 байт, если значения столбца требуют 0 - 255 байтов, L + 2 байта, если для значений может потребоваться более 255 байтов.

TINYTEXT : L + 1 байт, где L <2 8 .

Источник: Справочное руководство MySQL: Требования к хранилищу данных .


При равенстве места для хранения вы можете проверить следующие сообщения о переполнении стека для дальнейшего чтения о том, когда следует использовать тот или иной:

5
ответ дан 10 December 2019 в 00:36
поделиться

При использовании VARCHAR вам необходимо указать максимальное количество символов, которые будут храниться в этом столбце. Итак, если вы объявляете столбец как VARCHAR (255), это означает, что вы можете хранить текст длиной до 255 символов. Здесь важно то, что если вы вставите два символа, будут сохранены только эти два символа, т.е. выделенное пространство будет 2, а не 255.

TINYTEXT - это один из четырех типов TEXT. Они очень похожи на VARCHAR, но имеют несколько отличий (хотя это зависит от версии MySQL, которую вы используете). Но для версии 5.5 есть некоторые ограничения, когда дело касается типов ТЕКСТ. Во-первых, вы должны указать длину префикса индекса для индексов в TEXT. А во-вторых, столбцы TEXT не могут иметь значений по умолчанию.

В общем случае ТЕКСТ следует использовать для (очень) длинных значений. Если вы будете использовать строку длиной до 255 символов, вам следует использовать VARCHAR.

Надеюсь, что это поможет.

5
ответ дан 10 December 2019 в 00:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: