mysql分析日志_MYSQL 索引(三)--- SQL日志分析
慢查詢?nèi)罩?/p>
Mysql 的慢查詢?nèi)罩臼?Myql 提供的一種日志記錄,用來記錄在 Myql 中響應(yīng)時(shí)間查過閾值的語句,具體指運(yùn)行時(shí)間超過 long_query_time 值的 SQL,則會(huì)被記錄在日志中。long_query_time 默認(rèn)為 10,單位為秒。
默認(rèn)情況下,Mysql 數(shù)據(jù)庫沒有開啟慢查詢?nèi)罩?#xff0c;需要我們手動(dòng)來設(shè)置這個(gè)參數(shù)。如果不是調(diào)優(yōu)需要,不建議開啟慢查詢?nèi)罩?#xff0c;多少會(huì)影響性能。Mysql 慢查詢?nèi)罩局С謱懭氲轿募?/p>
查看開啟慢查詢
SHOW VARIABLES LIKE '%slow_query_log%'; # 查看慢查詢狀態(tài)
默認(rèn)情況:
開啟
set global slow_query_log=1;
如果要永久生效,必須修改配置文件 my.cnf:
在 [mysqld] 下添加:
slow_query_log = 1
slow_query_log_file=/var/lib/mysql/localhost-slow.log
long_query_time = 3
log_output = FILE
mysql中 判斷大于long_query_time,而非大于等于
SHOW VARIABLES LIKE 'long_query_time%';
set global long_query_time=3; # 修改后需要重新打開會(huì)話或打開新會(huì)話才會(huì)生效
mysql日志分析工具
mysqldumpslow --help
參數(shù)
含義
s
按何種方式排序
c
訪問次數(shù)
l
鎖定時(shí)間
r
返回記錄
t
查詢時(shí)間
al
平均鎖定事件
ar
平均返回記錄時(shí)間
at
平均查詢時(shí)間
t
返回前面多少條的數(shù)據(jù)
g
后面搭配正則匹配模式,大小寫不敏感
# 得到返回記錄集最多的十個(gè) SQL,/var/lib/mysql/localhost-slow.log 是慢查詢?nèi)罩韭窂?/p>
mysqldumpslow -s r -t 10 /var/lib/mysql/localhost-slow.log
# 得到訪問次數(shù)最多的十個(gè) SQL
mysqldumpslow -s c -t 10 /var/lib/mysql/localhost-slow.log
# 得到按照時(shí)間排序的前十條里面包含左連接的查詢語句
mysqldumpslow -s t -t 10 -g "left join" /var/lib/mysql/localhost-slow.log
# 建議在使用這些命令時(shí)結(jié)合 | 和 more 使用 ,否則有可能爆屏
mysqldumpslow -s r -t 10 "left join" /var/lib/mysql/localhost-slow.log | more
show profile
show profile 是 mysql 提供可以用來分析當(dāng)前會(huì)話中語句執(zhí)行的資源消耗情況,可以用于 SQL 的調(diào)優(yōu)測(cè)量。
默認(rèn)情況下,參數(shù)處于關(guān)閉狀態(tài),并保存最近 15 次的運(yùn)行結(jié)果。
分析步驟
是否支持
開啟功能,默認(rèn)關(guān)閉
show variables like 'profiling'; # 查看
set profiling=on; # 開啟
運(yùn)行 SQL
查看結(jié)果:
show profiles;
診斷 SQL
show profile cpu,block io for query 4;
| 參數(shù) | 含義 |
| - | - |
| ALL | 所有的開銷信息 |
| BLOCK IO | 塊 IO 相關(guān)開銷 |
| CONTEXT SWITCHES | 上下文切換相關(guān)開銷 |
| CPU | CPU相關(guān)開銷 |
| IPC | 發(fā)送和接收相關(guān)開銷 |
| MEMORY | 內(nèi)存相關(guān)開銷 |
| PAGE FAULTS | 頁面錯(cuò)誤相關(guān)開銷 |
| SOURCE | 顯示和Source_function, Source_file, Source_line 相關(guān)開銷 |
| SWAPS | 交換次數(shù)相關(guān)開銷 |
注意
converting HEAP to MyISAM 查詢結(jié)果太大,內(nèi)存不夠用,往磁盤上搬了
Creating tmp table 創(chuàng)建臨時(shí)表:拷貝數(shù)據(jù)到臨時(shí)表,用完再刪除
Copying to tmp on disk 把內(nèi)存中臨時(shí)表復(fù)制到磁盤,危險(xiǎn)!!!
locked
全局查詢?nèi)罩?/p>
永遠(yuǎn)不要在生產(chǎn)環(huán)境開啟此功能。
文件配置:
# 開啟
general_log =1 1
# 記錄日志文件路徑
general_log_file=/path/logfile
#輸出格式
log_output=FILE
參數(shù)配置(一次有效):
set global general_log = 1;
set global log_output='TABLE';
總結(jié)
以上是生活随笔為你收集整理的mysql分析日志_MYSQL 索引(三)--- SQL日志分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AMD RX 7000系列显卡偷跑:流处
- 下一篇: mysql savepoint作用_sa