詳細說明mysql慢查詢
發(fā)表時間:2023-09-03 來源:明輝站整理相關軟件相關文章人氣:
[摘要]1 慢查詢定義指mysql記錄所有執(zhí)行超過long_query_time參數(shù)設定的時間閾值的SQL語句。慢查詢?nèi)罩揪褪怯涗涍@些sql的日志。2 開啟慢查詢?nèi)罩菊业絤ysql配置文件my.cnf.在mysqld的下面添加log-slow-queries = D:/MySQL/log/mysqld-s...
1 慢查詢定義指mysql記錄所有執(zhí)行超過long_query_time參數(shù)設定的時間閾值的SQL語句。慢查詢?nèi)罩揪褪怯涗涍@些sql的日志。
2 開啟慢查詢?nèi)罩?/strong>
找到mysql配置文件my.cnf.在mysqld的下面添加
log-slow-queries = D:/MySQL/log/mysqld-slow-query.log #日志存在的位置。(注意權限的問題,可以不用設置,系統(tǒng)會給一個缺省的文件host_name-slow.log)
long-query-time = 5 #SQL執(zhí)行時間閾值,默認為10秒。
#log-long-format #說log-long-format選項是用來設置日志的格式,它是以擴展方式記錄有關事件。擴展方式可記錄誰發(fā)出查詢和什么時候發(fā)出查詢的信息?墒刮覀兏玫卣莆湛蛻舳说牟僮髑闆r。
#log-slow-admin-statements #將慢管理語句例如OPTIMIZE TABLE、ANALYZE TABLE和ALTER TABLE記入慢查詢?nèi)罩尽?
log-queries-not-using-indexes #如果運行的SQL語句沒有使用索引,則mysql數(shù)據(jù)庫同樣會將這條SQL語句記錄到慢查詢?nèi)罩疚募小?/pre>配置完畢后重啟mysql服務。
3 測試
為了方便 我只在my.cnf中配置了慢查詢?nèi)罩镜穆窂?
mysql 版本為 5.1.73
關于 long_query_time :從mysql 5.1開始,long_query_time開始以微秒記錄SQL語句運行時間,之前僅用秒為單位記錄。這樣可以更精確地記錄SQL的運行時間,供DBA分析。
進入mysql.
mysql> show VARIABLES like "%slow%"; #查看慢查詢?nèi)罩鞠嚓P的信息
mysql> set global long_query_time=0.01; #將mysql位置的值改為 0.01
mysql> show variables like "long_query_time"; #查看是否生效
mysql> select sleep(2); #延遲2秒執(zhí)行 注:這條sql執(zhí)行完畢以后應該已經(jīng)在慢查詢的日志文件中產(chǎn)生相關的信息記錄
mysql> show global status like '%slow%'; #查看慢查詢語句的次數(shù)
在日志文件中可以看到已經(jīng)記錄了sql.
總結:
Windows下開啟MySQL慢查詢
MySQL在Windows系統(tǒng)中的配置文件一般是是my.ini找到[mysqld]下面加上
log-slow-queries = F:\MySQL\log\mysqlslowquery.log
long_query_time = 2
Linux下啟用MySQL慢查詢
MySQL在Windows系統(tǒng)中的配置文件一般是是my.cnf找到[mysqld]下面加上
log-slow-queries=/data/mysqldata/slowquery.log
long_query_time=2
注意
log-slow-queries = F:\MySQL\log\mysqlslowquery.log為慢查詢?nèi)罩敬娣诺奈恢,一般這個目錄要有MySQL的運行帳號的可寫權限,一般都將這個目錄設置為MySQL的數(shù)據(jù)存放目錄;
long_query_time=2中的2表示查詢超過兩秒才記錄;
以上就是詳解mysql慢查詢的詳細內(nèi)容,更多請關注php中文網(wǎng)其它相關文章!
學習教程快速掌握從入門到精通的SQL知識。