хранение длинных фрагментов текста - PullRequest
1 голос
/ 18 марта 2012

Я кодирую веб-приложение для заметок в Интернете и хочу иметь поддержку заметок в диапазоне от 200 символов до очень длинных (~ более 10000 символов).Эти заметки должны быть доступны для поиска.

  • Как я могу сохранить текстовую заметку в своей базе данных, замедлит ли я мое приложение, если я буду использовать одну и ту же таблицу для всех заметок?реализовать несколько типов заметок (например, короткие, длинные, очень длинные и т. д.) и использовать для них разные таблицы?
  • Стоит ли использовать для заметок файлы вместо записей в базе данных длиной до 5000 символов?* Как я могу обработать текстовый поиск по этим заметкам (если я храню их в разных таблицах и / или файлах)?

Ответы [ 3 ]

4 голосов
/ 18 марта 2012

10000 символов не так уж велики для MySQL. Вы можете использовать столбец TEXT для хранения до 2 16 байтов. Этого достаточно, если ваш текст ASCII. Если это Unicode, то вы можете использовать поле LONGTEXT для хранения до 2 32 байт на запись.

Разработка отдельных таблиц для разных длин нот, я думаю, плохая идея. Это усложнит запрос.

MySQL также поддерживает полнотекстовый поиск . Если вы создаете таблицу ISAM, вы можете создать индекс FULLTEXT в поле примечаний, чтобы ускорить поиск (совсем немного). Найдите FULLTEXT на странице справки для CREATE TABLE для получения подробной информации.

4 голосов
/ 18 марта 2012

Используйте одну таблицу с одним столбцом TEXT.Это идеально подходит, MySQL может справиться с этим, не потревожив.Поместите индекс FULLTEXT в него для средних возможностей поиска.

2 голосов
/ 18 марта 2012
  • Нет
  • Нет
  • Нет
  • Используйте полнотекстовый поиск в MySQL или просто как "% search%", который будет немного медленнее.

Этот тип документа является пустяком для современной базы данных, просто создайте его и не беспокойтесь об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...