有没有办法从MySQL配置中停止MYSQL延迟插入?

时间:2009-07-02 15:05:21

标签: mysql delayed-execution

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

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

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

有没有办法防止延迟查询被延迟?就像让em像常规查询一样?

提前致谢!

干杯, Venetsian。

2 个答案:

答案 0 :(得分:5)

  1. 您可以使用FLUSH TABLES或'KILL 219586'强制该线程完成其工作并退出
  2. 在配置文件中设置max_delayed_threads=0并重新启动实例以完全禁用DELAYED功能
  3. 阅读文档 - 它会比在论坛中等待6小时更快

答案 1 :(得分:2)

不要担心那个帖子。如果将来有插入延迟的话,它就会被保留。它实际上并没有做任何事情......