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