Индексатор Sphinx замедляет работу базы данных: как придать ей низкий приоритет?

Все мои таблицы используют InnoDB, и я установил sphinx sql_range_step на минимум, равный 128. Это значительно улучшило производительность, но все еще очень медленно, если вы делаете запрос сразу после начала нового шага.

Я уверен, что все будет работать нормально, если я смогу уменьшить шаг диапазона до 10 или около того, но кто-то обнаружил, что минимальное значение жестко задано, и нет никакого способа изменить его (кроме редактирования источника).

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

Есть ли способ дать меньший приоритет пользователю или запросу, или что-то?

2 ответа

Взгляните на этот похожий пост от StackOverflow. Возможно, вы сможете использовать эти стратегии, чтобы сфинкс получил более низкий приоритет.

Посмотри на это

Идея состоит в том, чтобы вставить в запрос некоторый код, который замедляет выполнение запроса.

Для быстрого подхода вы можете использовать такой запрос:

select <your stuff> from <your table where <your condition> and (sleep (0.1) or 1)

Это заставит запрос sphinx ждать 0,1 секунды, прежде чем закончить.

Другие вопросы по тегам