Поле / Тип данных для хранения статей в базе данных MySQL - PullRequest
1 голос
/ 28 декабря 2010

Не могу не поверить, что эта тема была написана снова и снова, но у меня проблемы с поиском какой-либо хорошей, достоверной информации.

Какой тип данных я должен использовать для хранения от 200 до 400 слов текста? А как насчет более длинных статей, которые могут подходить к двум или трем тысячам слов?

Какие варианты должны повлиять на мое решение? Я не планирую искать эти данные, но я не могу полностью исключить возможность того, что я захочу сделать это позже.

К сожалению, мой фон - MS Access, где единственным вариантом для этого было поле для заметок. С MySQL все не так просто.

Ответы [ 3 ]

2 голосов
/ 28 декабря 2010

Если вы используете MySQL 5.0.3 или новее, перейдите на VARCHAR . Он может содержать 65 тыс. Байт. Пока у вас есть только 1 длинный VARCHAR на строку, все будет в порядке.

В противном случае перейдите с текстом.

Из руководства по mysql:

BLOB и ТЕКСТ отличаются от VARBINARY и VARCHAR следующими способами:

Нет удаления пробела для BLOB и TEXT столбцы, когда значения сохранены или получены. До MySQL 5.0.3, это отличается от VARBINARY и VARCHAR, для которых завершающие пробелы удаляется при сохранении значений.

При сравнении TEXT - это расширение пространства точно соответствовать сравниваемому объекту как CHAR и VARCHAR.

Для индексов по столбцам BLOB и TEXT: Вы должны указать префикс индекса длина. Для CHAR и VARCHAR, префикс длина не является обязательной. См. Раздел 7.5.1, «Индексы столбцов».

столбцы BLOB и TEXT не могут иметь Значения ПО УМОЛЧАНИЮ.

Также приятно знать (из руководство ):

Экземпляры столбцов BLOB или TEXT в результат запроса, который обрабатывается с использованием временной таблицы заставляет сервер использовать таблицу на диск, а не в памяти, потому что MEMORY Storage Engine не поддерживает эти типы данных

, что вы действительно должны учитывать при формулировании запросов, использующих TEXT.

0 голосов
/ 28 декабря 2010

Тип данных TEXT является безопасной ставкой для вашей ситуации, VARCHAR s обычно используются, когда они должны быть проиндексированы или когда необходимо сохранить четко определенное значение (IP-адрес, почтовый индекс и т. Д.).

0 голосов
/ 28 декабря 2010
Поле

A TEXT должно быть достаточно большим для хранения большинства статей. Кажется, что это примерно соответствует типу заметки Access. Он может содержать до 65535 символов, что может быть где-то рядом ... я не знаю ... в среднем 10-12 000 слов?

...