資料庫調優教程(三)記錄慢查詢
阿新 • • 發佈:2019-01-26
一、 發現慢查詢
上一講我們為慢查詢的發生做了資料準備,這一講就讓我們來發現慢查詢,同時把它記錄到檔案中。3. 記錄慢查詢
此時我們已經有讓慢查詢發生的成本了。執行以下語句,你就知道什麼叫慢!查!詢!
select empno from emp where ename='';
一個很明顯找不到結果的查詢語句居然也執行了近3秒鐘。
這時候,作為DBA就應該把這個sql語句記錄下來,是記在記事本還是寫在筆記本呢?不用想太多了,不用你自己記,Mysql提供了慢查詢日誌功能,自動幫你記錄慢查詢的語句。
1) 把慢查詢的sql記錄到日誌中
首先你要開啟慢查詢日誌檔案記錄器
使用
show variables like 'slow%';
你會發現預設情況下慢查詢日誌記錄器關閉的
使用
set global slow_query_log=ON;
開啟之
此時你會發現mysql安裝目錄下的data資料夾中出現了以你本機名命名的日誌檔案
此時再執行慢查詢操作
開啟日誌檔案發現出現記錄
以後只需要定期檢查日誌檔案就可以找到慢查詢語句了
注意:
在找到慢查詢語句後,要通過反覆使用select語句確認慢查詢,注意只能使用select語句,就算是原來語句為delete或者update等,也要用select代替,因為只有select不會弄髒資料庫
2) 另一種發現慢查詢語句的方法
要是你使用Hibernate進行J2ee開發,可以使用一下方式。
在頁面中進行操作,當發現某個操作的響應較慢時,檢視Eclipse控制檯的Hibernate輸出sql語句,此語句即為慢查詢語句。 本章結束,下一章我們將講解如何使用mysql的效能分析命令Explain。