Sphinx 索引器减慢数据库速度:如何给它低优先级?

发布于 2024-11-02 02:57:10 字数 299 浏览 1 评论 0原文

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

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

所以我想知道是否有一种方法可以直接从 MySQL 处理这个问题。当我为数据库建立索引时,其他数据库不会受到影响,因此并不是整个服务器速度减慢,而是只有我正在建立索引的数据库速度减慢。

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

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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

无尽的现实 2024-11-09 02:57:10

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

At first, try to optimize your SQL queries sql_query and sql_query_range.
Also, you can throttle queries while indexing via sql_ranged_throttle. For example, set it to 1000, to get 1 second (1000 ms) delay before each ranged query.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文