Хранение полей TEXT в больших объёмах в Mysql

Имеется Mysql сервер и на нём таблица содержимого статей.

Структура: id (int), article_id (int), content (text)
Около 1.5млн записей. Объём таблицы 5Gb. Общий объём данных на Mysql 9Gb

В последнее время сервер стал медленнее работать
Имеет ли смысл выносить эти данные на MongoDB для уменьшения объёма данный Mysql и увеличения его производительности
  • Вопрос задан
  • 9644 просмотра
Пригласить эксперта
Ответы на вопрос 5
Melkij
@Melkij
PostgreSQL DBA
9гб даже для mysql — небольшая величина. Ищите проблему в другом. Например, когда данных было немного, было незаметно отсутствие индекса по какому-нибудь более-менее часто используемому запросу.
Ответ написан
@ShouldNotSeeMe
Не совсем понятны исходные данные. Кроме запросов еще важно, стоят ли PRIMARY-индексы.
Для уменьшения занимаемого места на диске при слабозагруженном CPU можно воспользоваться упаковкой текста на лету с помощью COMPRESS/UNCOMPRESS.
Ответ написан
Комментировать
taliban
@taliban
php программист
Имеет смысл иногда вынести поле текст в отдельную табличку, если дергаются данные из этой таблицы без этого поля.
Ответ написан
Хранить текст статей в базе глупо — правильнее хранить ссылку или напрямую обращаться по номеру ключа. Таким подходом вы снизите нагрузку на БД и повысите отзывчивость сервера, т.к. можно организовать кэшироание на уровне сервера и ФС. Для поиска необходимо использовать Sphinx.

Можете минусовать…
Ответ написан
@boodda
Так может просто база разрослась настолько, что индексы не стали влазить в key_buffer и теперь индексы мускулом просто перестали юзаться?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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