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