2012-12-11 78 views
2

我們有一個MySQL服務器,其中運行着多個數據庫,用於不同類型的數據。其中之一是一個wordpress數據庫。MySQL在「rehash」命令上永遠掛起

我可以連接好,「顯示數據庫」,「使用蘋果」,「使用桔子」等(替代水果爲我們的實際數據庫),但當我「使用wordpress」,而不是「數據庫改變」,我得到

Reading table information for completion of table and column names 
You can turn off this feature to get a quicker startup with -A 

果然,如果我用一個額外的-A標誌啓動mysql一切似乎工作。然後我可以「使用wordpress」並查看數據。

如果我用-A啓動它,並且「使用wordpress」它可以工作,那麼我會「重新組合」並掛起。

有沒有人看到這個?我能做些什麼呢?

回答

1

MySQL命令行客戶端提供數據庫/表/列名完成:也就是說,當您開始輸入名稱並按標籤時,名稱已完成。爲此,客戶端會構建一個數據庫,表和列名稱的散列,在您調用完成時查詢它。

如果命令行客戶端在啓用auto-rehashing的情況下啓動,它會在連接到數據庫時自動生成完成哈希,並使其保持最新狀態。對於大型數據庫,這可能需要一些時間。使用--no-auto-rehash-A)啓動客戶端時,不會構建哈希,直到您手動構建哈希(使用rehash\#)後才能完成哈希。這減少了啓動時間,特別是對於大型數據庫。

因此,散列在大型數據庫上需要相當長時間是正常的。這是您在啓用自動重新刷新功能(即,沒有使用-A或使用-A,然後使用rehash)時似乎遇到的情況。對於小型數據庫(在您的示例中爲​​和oranges)並不明顯,但對於大型數據庫(wordpress)而言速度很慢。一些替代品使用:

  • 不老調重彈
  • ,叫杯咖啡,而散列建設
  • 使用不同的客戶端,提供更快的完成
+3

我可以添加到替代該列表 - 谷歌周圍爲什麼這是永恆的,並遇到這個問題:) –