Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

All my tables use InnoDB, and I have set sphinx sql_range_step to the minimum, which is 128. This improved the performance a lot, but it is still very slow if you make a request right after a new step begins.

I'm sure it would work just fine if I could reduce the range step to 10 or something, but someone found that the min value is hardcoded and there is no way to change it (other than editing the source).

So I was wondering if there was a way to deal with this directly from MySQL. When I am indexing a database, the other databases aren't affected, so it's not the whole server which has been slowed down, but only the database I am indexing.

Is there a way to give less priority to a user or query, or something?

share|improve this question

Take a look at this similar post from StackOverflow. You may be able to use those strategies to give sphinx a lower priority.

share|improve this answer

Have a look at this

The idea is to insert some code in your query that is throttling down query execution.

For a quickest approach you can use a query like this:

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

That will make sphinx query to wait for 0.1 seconds before finishing.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.