2009-07-02 105 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

不要擔心那個線程。它只是保持在未來的情況下,以防延遲插入。它實際上並沒有做任何事情..

相關問題