2009-02-20 33 views
0

我們的MySQL服務器表現得很奇怪 - 在一個表上執行大量查詢將會鎖定它,即使它在完全不相關的表上(如SELECT的主鍵)也不會被其他查詢響應,INSERT,或者甚至EXPLAIN) - 它只會等待重頭人完成。

我真的沒有想法可能會導致什麼 - 有大量的免費線程,CPU處於空閒/等待狀態,網絡是免費的,有足夠的內存......等等

任何人有什麼想法什麼尋找?通用mysql凍結

+0

1.「非常」鎖定的意思是什麼? :)是否有其他查詢_sometime_送達? 2.這個沉重的查詢 - 它使用大量的連接嗎?你能告訴我更多一點嗎? – 2009-02-20 10:14:15

回答

0

MySQL有多少內存?我的猜測是,它不得不去磁盤臨時表,這可能是殺手。您的my.cnf/my.ini文件中的innodb_buffer_pool_size有多大?通過增加(增加內存使用量)較小的查詢(以及需要進行大量排序的查詢)將不必打擊磁盤。

下一次查詢開始執行此操作時,請登錄到MySQL,執行「顯示完整進程列表」並記錄其中的內容。如果您對速度較慢的查詢發出EXPLAIN或DESCRIBE,它是什麼?它是否包含它將要臨時表的提示?

當MySQL開始使用臨時表時,事情可能會感覺他們正在死亡,尤其是如果您沒有快速磁盤。