問題之如何定位數據庫的慢查詢並優化

調優策略
* 設置數據庫的慢查詢爲on:set GLOBAL slow_query_log = on;
* 可以使用slowshow VARIABLES like ‘%quer%’;查看開啓狀況
* 然後設置慢查詢的時間限制,默認時10秒,可以將其 設置爲1秒。
* 這樣在慢查詢的時候,只要超過時間的限制,就會在日誌中打印相關的信息:包括查尊的語句,所用的時間等。
* explain分析查詢語句:直接在sql語句前添加explain語句,可以分析各個字段的信息,來進行優化

	* type :

	* extra:

	* id: 一般會顯示sql語句的查詢的順序,一般先查詢的語句的id值往回越大。

策略
* 修改查詢的字段,可以將查詢的字段修改爲其他的查詢較快的字段
* 建立索引
注意:使用主鍵索引並非比其他的索引快,比如:
在這兩個查詢中,第一個是mysql的優化引擎自動選擇查詢的健,使用的是非主鍵,這是因爲主鍵使用的是密集索引,因而在查詢的時候會將其他列的索引也存放到葉子節點中,帶哦之查詢的效率變慢,稀疏索引只會存儲關鍵字和索引,在查詢的時候優化引擎會選擇最優的查詢。 但是優化引擎並非完全可靠。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章