MySQL: Наиболее эффективный тип данных для хранения длинных заметок?

Я хотел создать персональную базу данных заметок, чтобы хранить заметки в HTML или тексте, которые довольно длинные. Какая разница между полями VARCHAR и TEXT , какое из них было бы более эффективно использовать?

Я думаю, что Макс. VARCHAR составляет 65535 символов Я не могу обернуть мою голову, если я буду содержать что-то большее, чем это все же. Интересно, можно ли автоматически сжать определенный тип данных, хотя я не думаю, что это так просто (так как при реальном использовании это потребует слишком много процессорного времени).

11
задан John 24 August 2010 в 10:07
поделиться

3 ответа

Если вы не уверены, всегда ли текст будет короче 65535 символов, не рискуйте использовать varchar . Я думаю, что вам определенно стоит использовать тип mediumtext или даже longtext , но для увеличения производительности поместите их в отдельную таблицу. Например, создайте таблицу Notes , которая будет содержать идентификатор заметки, заголовок, дату создания и пользователя, который ее создает, а также таблицу NotesText , которая будет связана с Notes , но будет содержать только идентификатор заметки и текстовый столбец. Это предотвратит выполнение запросов к столбцам текстового типа и их извлечение из базы данных, когда это действительно не нужно.

10
ответ дан 3 December 2019 в 08:53
поделиться

AFAIR TEXT не может превышать 65 тыс. Символов, MEDIUMTEXT - 16 миллионов, а LONGTEXT - не более 4 ГБ: -)

2
ответ дан 3 December 2019 в 08:53
поделиться

Максимальная длина VARCHAR не 65535 байтов; максимальная длина строки - это количество байтов, а максимальная длина VARCHAR будет зависеть от того, какие еще столбцы у вас есть в таблице. По этой причине, если вам, вероятно, понадобится такое количество символов, вам понадобится столбец TEXT или BLOB. Они хранятся отдельно на диске, поэтому обычно работают медленнее (не по загрузке ЦП, а по общему времени).

1
ответ дан 3 December 2019 в 08:53
поделиться
Другие вопросы по тегам:

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