Как оптимизировать Sphinx indexer «sorted»?

Прошу помощи! Есть таблица с 1.2 миллионами записей. Организован поиск на sphinx. Всё было хорошо, но теперь требуется переиндексировать таблицу хотя бы раз в сутки. Сервер простенький, но нужно сделать именно на нём. Про запуске indexer сервер начинается ложиться и LA достигает 25-30. Начал гуглить как оптимизировать. Нагуглил вот что:

sql_query_range = SELECT MIN(id),MAX(id) FROM table
sql_range_step = 300
sql_query = SELECT id, title FROM table WHERE ID>=$start AND ID<=$end
sql_query_info = SELECT * FROM table WHERE ID=$id
sql_ranged_throttle = 500


Помогло до тех пор, пока сфинкс не начинает сортировку:
sorted 193.0 Mhits, 95.7% done


Искал решения, но ничего не нашёл. Прошу помощи. Заранее благодарен.
  • Вопрос задан
  • 3360 просмотров
Пригласить эксперта
Ответы на вопрос 2
xytop
@xytop
PHP/RoR web dev & tech lead
У нас в БД тоже несколько миллионов записей, причем таких БД больше 10ти, все на одном сервере. Используем delta-индексы
По поводу вашего решения — тут неплохо описано. Похоже, что вам ко всему прочему нужно установить max_iops лимит.
Ответ написан
kenny_opennix
@kenny_opennix
Через рт индексы, у меня база более 3 мл записей, самое оптимальное решение для меня.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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