2014年4月4日星期五

MySQL的解釋和SQL_NO_CACHE

Original post: http://anothermysqldba.blogspot.com/2014/04/mysql-explain-sqlnocache.html

所以今天我幫助的人與他們的數據庫的性能和過一些寫得不好的查詢就跑。 現在,肯定每個人都會犯錯,我們的目標是盡你所能,以避免它們。

因此,只是一對夫婦的有用的提示做你讓一個鬆散的查詢到您的環境之前。

通過首先解釋總是執行查詢。 這樣簡單的事情做的第一個解釋將確認沒有錯別字(因為它不會運行),並允許您優化查詢。
幾個環節已經存在有關如何使用說明:
我們的目標很簡單。 要在possible_keys和鑰匙(不為null)有效的鑰匙,當它涉及到key_len你不希望每個表是行100S。 如果你能拿到第一key_len是200(只是一個數字我拿起為例)然後下面是5,4,3,2,1,而不是其他200那麼你的查詢應該運行良好。 這是一個非常簡單的和高層次的聲明,我建議你查看列出來了解更多的解釋的超鏈接。 我今天看到查詢有5 +連接和一個子選擇(通過一個連接是更好的where語句)和200 +行,每key_len。 一些調整,可以讓您查詢從200秒下降到1秒或更少。 永遠,永遠,永遠不要解釋。

接下來的提示,嘗試用SQL_NO_CACHE測試你的查詢。 這使您可以測試真實的查詢和優化的最佳方式即可。 一旦它變得緩存(這是否是),那麼它將只運行得更快為您服務。
最後一個音符......看看MySQL的SQL性能的技巧,曾經存在的偽造網站,但現在正處於- https://wikis.oracle.com/pages/viewpage.action?pageId=27263381