MySQL 慢查詢

來源:互聯網
上載者:User

MySQL 慢查詢

簡述:

分析MySQL語句查詢效能的方法除了使用 EXPLAIN 輸出執行計畫,還可以讓MySQL記錄下查詢 超過指定時間的語句,我們將超過指定時間的SQL語句查詢稱為“慢查詢”。

它能記錄下所有執行超過 long_query_time時間的SQL語句, 幫你找到執行慢的SQL,  方便我們對這些SQL進行最佳化。

在最佳化MySQL時,通常需要對資料庫進行分析,常見的分析手段有 慢查詢日誌,EXPLAIN 分析查詢, profiling分析 以及 show命令查詢系統狀態及系統變數,通過定位分析效能的瓶頸,才能更好的最佳化資料庫系統的效能。

思路:

--> 分析慢查詢日誌 --> 查看錶結構、表狀態 --> 查看錶索引 --> 分析sql語句 --> explain --> 修改sql語句 --> 驗證修改結果

慢查詢日誌配置:

1、在my.ini設定檔中添加以下選項:

log-slow-queries=master-0-slow.log 慢查詢日誌位置

log-queries-not-using-indexes=on  沒有使用索引的Query也計入慢查詢日誌

long_query_time=1  當Query語句大於1秒時記入慢查詢日誌

--> linux下mysql開啟慢查詢方法:

mysql在linux系統中的設定檔一般是my.cnf,我的路徑是/etc/my.cnf,你根據自己編譯安裝的路徑去尋找 vi /etc/my.cnf

一樣是在[mysqld]下面加上:

log-slow-queries=/var/lib/mysql/slowquery.log

long_query_time=2

log-queries-not-using-indexes

這裡就不再解釋了,加上後重啟mysql,就可以到/var/lib/mysql下看是否有slowquery.log產生了. cd /var/lib/mysql/

2、在命令視窗通過命令查詢慢查詢配置資訊

① 查看Query語句執行時間大於多少秒計入慢查詢日誌

通過命令列動態配置:MySQL> set long_query_time=1;

② 查看慢查詢日誌是否開啟與存放路徑

通過命令列動態配置:MySQL> set global slow_query_log='ON'

慢查詢日誌格式

# Time: 120331 10:05:48

# User@Host: root[root] @ 91SK-B49337164E [10.10.10.99]

# Query_time: 14.031250  Lock_time: 0.218750 Rows_sent: 0  Rows_examined: 90785 SET timestamp=1333159548; delete from orderinfo;

這是慢查詢日誌中的一條,用了14.031250秒,鎖了0.218750秒,返回0行,一共查了90785行

通過mysqldumpslow命令查看慢查詢日誌:

1、 由於mysql內建命令mysqldumpslow.pl使用的是perl指令碼,所以需要安裝perl環境。下載ActivePerl.exe安裝包並進行安裝。

2、在DOS命令列下執行mysqldumpslow命令

使用mysqldumpslow命令在f:\master-0-slow.log慢查詢日誌中尋找日誌中記錄次數最多的前10條SQL語句。並存放到f:\master-slow-0.txt檔案中。

mysqldumpslow命令解析:

-s, 表示按照何種方式排序,c、t、l、r分別是按照記錄次數、時間、查詢時間、返回的記錄數來排序,ac、at、al、ar,表示相應的倒敘;

-t, 是top n的意思,即為返回前面多少條的資料;

-g, 後邊可以寫一個正則匹配模式,大小寫不敏感的;

例如:返回記錄集最多的10個查詢。

按照時間排序的前10條裡面含有左串連的查詢語句。

# The ideal of life is for ideal life! #

本文永久更新連結地址:

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.