Я хотел создать персональную базу данных заметок, чтобы хранить заметки в HTML или тексте, которые довольно длинные. Какая разница между полями VARCHAR
и TEXT
, какое из них было бы более эффективно использовать?
Я думаю, что Макс. VARCHAR
составляет 65535 символов Я не могу обернуть мою голову, если я буду содержать что-то большее, чем это все же. Интересно, можно ли автоматически сжать определенный тип данных, хотя я не думаю, что это так просто (так как при реальном использовании это потребует слишком много процессорного времени).
Если вы не уверены, всегда ли текст будет короче 65535 символов, не рискуйте использовать varchar
. Я думаю, что вам определенно стоит использовать тип mediumtext
или даже longtext
, но для увеличения производительности поместите их в отдельную таблицу. Например, создайте таблицу Notes
, которая будет содержать идентификатор заметки, заголовок, дату создания и пользователя, который ее создает, а также таблицу NotesText
, которая будет связана с Notes
, но будет содержать только идентификатор заметки и текстовый столбец. Это предотвратит выполнение запросов к столбцам текстового типа и их извлечение из базы данных, когда это действительно не нужно.
AFAIR TEXT не может превышать 65 тыс. Символов, MEDIUMTEXT - 16 миллионов, а LONGTEXT - не более 4 ГБ: -)
Максимальная длина VARCHAR не 65535 байтов; максимальная длина строки - это количество байтов, а максимальная длина VARCHAR будет зависеть от того, какие еще столбцы у вас есть в таблице. По этой причине, если вам, вероятно, понадобится такое количество символов, вам понадобится столбец TEXT или BLOB. Они хранятся отдельно на диске, поэтому обычно работают медленнее (не по загрузке ЦП, а по общему времени).