0

我所有的表都使用 InnoDB,并且我将 sphinx sql_range_step 设置为最小值,即 128。这大大提高了性能,但是如果您在新步骤开始后立即发出请求,它仍然很慢。

我敢肯定,如果我可以将范围步长减小到 10 或其他东西,它会工作得很好,但是有人发现最小值是硬编码的,没有办法改变它(除了编辑源代码)。

所以我想知道是否有办法直接从 MySQL 处理这个问题。当我索引一个数据库时,其他数据库不受影响,所以不是整个服务器都变慢了,而只有我正在索引的数据库。

有没有办法降低用户或查询的优先级,或者其他什么?

4

1 回答 1

1

首先,尝试优化您的 SQL 查询sql_query和 sql_query_range。此外,您可以在通过sql_ranged_throttle建立索引时限制查询。例如,将其设置为 1000,以在每个范围查询之前获得 1 秒(1000 毫秒)的延迟。

于 2011-04-18T21:54:30.183 回答