mysql慢查詢應用詳解。本站提示廣大學習愛好者:(mysql慢查詢應用詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是mysql慢查詢應用詳解正文
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:\MySQL\log\mysqlslowquery.log
long_query_time = 2
Linux下啟用MySQL慢查詢
MySQL在Windows體系中的設置裝備擺設文件普通是是my.cnf找到[mysqld]上面加上
log-slow-queries=/data/mysqldata/slowquery.log
long_query_time=2
留意
log-slow-queries = F:\MySQL\log\mysqlslowquery.log為慢查詢日記寄存的地位,普通這個目次要有MySQL的運轉帳號的可寫權限,普通都將這個目次設置為MySQL的數據寄存目次;
long_query_time=2中的2表現查詢跨越兩秒才記載;