2009-07-02 102 views
3

我遇到了一个奇怪的问题与我们的服务器之一。我看到有延迟的mysql插入有没有办法阻止MySQL配置中的MYSQL Delayed Inserts?

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

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

有没有办法来防止延迟查询被延迟?像让他们像普通查询一样行事?

在此先感谢!

干杯, Venetsian。

回答

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

@noonex - 6h等待答案通常比试图破译MySql文档更痛苦,特别是如果你在Windows上运行MySql,因为差异足以引起头痛=) – Rob 2009-07-03 08:17:01

1

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

相关问题