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. Они хранятся отдельно на диске, поэтому, как правило, они медленнее (не в использовании ЦП, а в общем времени).