數據庫調優教程(三)記錄慢查詢

一、           發現慢查詢


上一講我們爲慢查詢的發生做了數據準備,這一講就讓我們來發現慢查詢,同時把它記錄到文件中。

3.      記錄慢查詢


此時我們已經有讓慢查詢發生的成本了。執行以下語句,你就知道什麼叫慢!查!詢!

[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. select empno from emp where ename='';  


一個很明顯找不到結果的查詢語句居然也執行了近3秒鐘。

這時候,作爲DBA就應該把這個sql語句記錄下來,是記在記事本還是寫在筆記本呢?不用想太多了,不用你自己記,Mysql提供了慢查詢日誌功能,自動幫你記錄慢查詢的語句。

1)    把慢查詢的sql記錄到日誌中

首先你要打開慢查詢日誌文件記錄器

使用

[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. show variables like 'slow%';  

你會發現默認情況下慢查詢日誌記錄器關閉的

使用

[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. set global slow_query_log=ON;  

打開之



此時你會發現mysql安裝目錄下的data文件夾中出現了以你本機名命名的日誌文件


此時再執行慢查詢操作


打開日誌文件發現出現記錄


以後只需要定期檢查日誌文件就可以找到慢查詢語句了


注意:

在找到慢查詢語句後,要通過反覆使用select語句確認慢查詢,注意只能使用select語句,就算是原來語句爲delete或者update等,也要用select代替,因爲只有select不會弄髒數據庫


2)    另一種發現慢查詢語句的方法

要是你使用Hibernate進行J2ee開發,可以使用一下方式。

在頁面中進行操作,當發現某個操作的響應較慢時,查看Eclipse控制檯的Hibernate輸出sql語句,此語句即爲慢查詢語句。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章