Какой выбрать движок баз данных?

Есть проект. Сейчас используется MySql.
Ряд таблиц InnoDB с данными порядка 1 гигабайта каждая.

Делаются запросы вида selec sum(money) from table where field1=5 and field2=11 and field3='asdasdd'
также часто используется fulltext поиск.

Подобных запросов десятки тысяч. Набор полей задает пользователь. Работает все не очень быстро.
Индексы используются (создаются "на лету" под соответствующие запросы).

Рассматриваю вариант смены БД. Подскажите пожалуйста варианты.
  • Вопрос задан
  • 6057 просмотров
Пригласить эксперта
Ответы на вопрос 4
HDApache
@HDApache
PHP программист
Elasticsearch, как поисковый индекс и postgresql как хранилище. По крайней мере мой выбор такой.
Ответ написан
Комментировать
kompi
@kompi
nullstack devoops
Полнотекстовый поиск в mysql - это просто костыль. Оператор like по 5-и страничному тексту...
Нормальные полностекстовые движки разбивают текст на индексируеммые лексеммы по заданному словарю, убирая дубли и проставляя позиции, что позволяет вычислять ранки (по сути релевантность). Postgresql все это умеет, хотя и не является специализированным поисковым движком.
Ответ написан
@IgoNsk
backend web developer
Согласен с постом @sim3x , и немного добавлю от себя.
Когда надо было решить проблему с полнотекстовым поиском по данным из MySQL - мне в этом хорошо помог Sphinx. Он заметно шустрее штатного механизма, ну и функционал куда шире. Пару дней хватит на изучение документов, статей. Можно комбинировать Sphinx поиск, и поиск по исходным данным (например по числовым полям).
Ответ написан
kompi
@kompi
nullstack devoops
Советую пристально присмотреться к postgresql. Все что нужно есть :) Есть свой fts, много различных специализированных типов, в том числе json, array и т.д.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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