1 慢查詢定義
指mysql記錄所有執行超過long_query_time參數設定的時間閾值的SQL語句。慢查詢日志就是記錄這些sql的日志。
2 開啟慢查詢日志
找到mysql查詢my.cnf.在mysqld的下面添加
log-slow-queries?=?D:/MySQL/log/mysqld-slow-query.log??#日志存在的位置。(注意權限的問題,可以不用設置,系統會給一個缺省的文件host_name-slow.log) long-query-time?=?5???#SQL執行時間閾值,默認為10秒。 #log-long-format???#說log-long-format選項是用來設置日志的格式,它是以擴展方式記錄有關事件。擴展方式可記錄誰發出查詢和什么時候發出查詢的信息。可使我們更好地掌握客戶端的操作情況。 #log-slow-admin-statements??#將慢管理語句例如OPTIMIZE?TABLE、ANALYZE?TABLE和ALTER?TABLE記入慢查詢日志。 log-queries-not-using-indexes?#如果運行的SQL語句沒有使用索引,則mysql數據庫同樣會將這條SQL語句記錄到慢查詢日志文件中。
配置完畢后重啟mysql服務。
3 測試
為了方便 我只在my.cnf中配置了慢查詢日志的路徑.
mysql 版本為 5.1.73
關于 long_query_time :從mysql 5.1開始,long_query_time開始以微秒記錄SQL語句運行時間,之前僅用秒為單位記錄。這樣可以更精確地記錄SQL的運行時間,供DBA分析。
進入mysql.
mysql>?show?VARIABLES?like?"%slow%";?#查看慢查詢日志相關的信息 mysql>?set?global?long_query_time=0.01;??#將mysql位置的值改為?0.01 mysql>?show?variables?like?"long_query_time";?#查看是否生效 mysql>?select?sleep(2);?#延遲2秒執行?注:這條sql執行完畢以后應該已經在慢查詢的日志文件中產生相關的信息記錄 mysql>?show?global?status?like?'%slow%';?#查看慢查詢語句的次數
在日志文件中可以看到已經記錄了sql.
總結:
Windows下開啟MySQL慢查詢
MySQL在Windows系統中的配置文件一般是是my.ini找到[mysqld]下面加上
log-slow-queries = F:MySQLlogmysqlslowquery.log
long_query_time = 2
查詢下啟用MySQL慢查詢
MySQL在Windows系統中的配置文件一般是是my.cnf找到[mysqld]下面加上
log-slow-queries=/data/mysqldata/slowquery.log
long_query_time=2
注意
log-slow-queries = F:MySQLlogmysqlslowquery.log為慢查詢日志存放的位置,一般這個目錄要有MySQL的運行帳號的可寫權限,一般都將這個目錄設置為MySQL的數據存放目錄;
long_query_time=2中的2表示查詢超過兩秒才記錄;