Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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
add comment

2 Answers

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
add comment

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
add comment

Your Answer

 
discard

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.