在開發(fā)項(xiàng)目中,我們可以通過(guò)MySQL的慢查詢?nèi)罩緦?duì)有效率問(wèn)題的SQL進(jìn)行監(jiān)控。
下面一些命令是開啟日志:
查找慢查詢?nèi)罩疚募哪夸?br />
show variables like 'slow_query_log'
設(shè)置慢日志文件目錄文件
set global slow_query_log_file='home/mysql/sql_log/mysql_slow.log'
是否把沒(méi)有使用索引的sql記錄在日志中
set global log_queries_not_using_indexes=on
設(shè)置超過(guò)多少秒的sql記錄在日志中
set global long_query_time=1
在這里這個(gè)時(shí)間通常比較大,最好設(shè)置在0.01s比較好,更具自己的情況而定。
下面我們實(shí)際的來(lái)執(zhí)行一下命令:
首先查看日志文件位置:

可以看出我們的slow_query_log是off,說(shuō)明我們沒(méi)有開啟慢查日志。
通過(guò)show variables like '%log'
命令查看日志的狀態(tài),如果我們的log_queries_not_using_indexes選項(xiàng)為OFF,
那我們就需要對(duì)他設(shè)置為on開啟。
然后在通過(guò)命令查看long_query_time的值是否被設(shè)置,如果為0,就說(shuō)明不管是什么查詢都會(huì)被記錄在日志當(dāng)中。
這里需要注意在生成環(huán)境中,短時(shí)間可能會(huì)有大量的日志。
下面我們看下日志的存儲(chǔ)格式:
格式如下:
#查詢的執(zhí)行時(shí)間
#Time:140606 12:30:17
#SQL執(zhí)行的主機(jī)信息
#User@Host:root[root] @ localhost []
#SQL的執(zhí)行信息,查詢執(zhí)行時(shí)間 鎖定時(shí)間 發(fā)送的行數(shù)和掃描的行數(shù)
#Query_time:0.000031 Locak_time:0.000000 Rows_sent:0 Rows_examined:0
#SQL執(zhí)行時(shí)間
SET timestamp=1402029017;
#執(zhí)行的SQL內(nèi)容
show tables;
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。
您可能感興趣的文章:- 詳解MySql的慢查詢分析及開啟慢查詢?nèi)罩?/li>
- mysql 開啟慢查詢 如何打開mysql的慢查詢?nèi)罩居涗?/li>
- MYSQL5.7.9開啟慢查詢?nèi)罩镜募记?/li>
- MySQL開啟慢查詢?nèi)罩緇og-slow-queries的方法
- MySQL慢查詢優(yōu)化之慢查詢?nèi)罩痉治龅膶?shí)例教程
- MySQL 開啟慢查詢?nèi)罩镜姆椒?/li>
- mysql正確安全清空在線慢查詢?nèi)罩緎low log的流程分享
- 對(duì)MySQL慢查詢?nèi)罩具M(jìn)行分析的基本教程
- 根據(jù)mysql慢日志監(jiān)控SQL語(yǔ)句執(zhí)行效率
- MySQL中查詢?nèi)罩九c慢查詢?nèi)罩镜幕緦W(xué)習(xí)教程