一、 發現慢查詢
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語句,此語句即爲慢查詢語句。