4

我在我们的一台服务器上遇到了一个奇怪的问题。我看到有延迟的 mysql 插入

+--------+----------------+-----------+------------------+----------------+------+--------------------+------------------------------------------------------------------------------------------------------+
| Id     | User           | Host      | db               | Command        | Time | State              | Info                                                                                                 |
+--------+----------------+-----------+------------------+----------------+------+--------------------+------------------------------------------------------------------------------------------------------+
| 219586 | DELAYED        | localhost | XXXX             | Delayed insert | 202  | Waiting for INSERT |                                                                                                      |

在很少使用的数据库上。根据我从 MySQL 手册中了解到的情况,这些插入等待其他插入以优化高度使用的数据库以批量/块编写插入。不幸的是,他们说这种方法会消耗大量内存,并且在很少使用的数据库上使用时效率极低。在这种特殊情况下,该数据库每天只有 10 到 20 次查询,这使得延迟非常大——长达一整天。其他数据库/用户也有类似的问题,加起来它们似乎会加载 MySQL 的内存使用和 CPU。

有没有办法防止延迟查询被延迟?就像让他们像常规查询一样行事?

提前致谢!

干杯,威尼斯人。

4

2 回答 2

5
  1. 您可以 FLUSH TABLES 或 'KILL 219586' 强制该线程完成其工作并退出
  2. 在配置文件中设置max_delayed_threads=0并重新启动实例以完全禁用 DELAYED 功能
  3. 阅读文档 - 这将比在论坛中等待 6 小时更快
于 2009-07-02T22:14:48.433 回答
2

不要担心那个线程。它只是保留,以防将来有延迟插入。它实际上并没有做任何事情..

于 2009-07-05T20:48:50.870 回答