1. 程式人生 > >資料庫調優教程(三)記錄慢查詢

資料庫調優教程(三)記錄慢查詢

一、           發現慢查詢

上一講我們為慢查詢的發生做了資料準備,這一講就讓我們來發現慢查詢,同時把它記錄到檔案中

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。