我所有的表都使用InnoDB,并且我将sql_range_step设置为最小值,即128。这大大提高了性能,但如果您在新步骤开始后立即发出请求,则性能仍然非常慢。
我确信,如果我可以将范围步长减少到10或其他值,它会工作得很好,但有人发现最小值是硬编码的,没有办法更改它(除了编辑源代码之外)。
所以我想知道是否有直接从MySQL来处理这个问题的方法。当我索引一个数据库时,其他数据库不会受到影响,所以不是整个服务器变慢了,而是我正在索引的数据库变慢了。
有没有办法降低用户或查询的优先级?
发布于 2011-04-18 21:54:30
首先,尝试优化您的SQL查询sql_query和sql_query_range。此外,您还可以在通过sql_ranged_throttle进行索引时限制查询。例如,将其设置为1000,可在每次远程查询之前获得1秒(1000ms)的延迟。
https://stackoverflow.com/questions/5696356
复制