日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql之慢日志查询

發布時間:2025/3/15 数据库 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql之慢日志查询 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自https://my.oschina.net/wuweixiang/blog/2987434

?

首先得配置my.cnf:

#====================================================================================================================# #================================================== 慢日志 ===========================================================# #====================================================================================================================# #是否啟用慢查詢 slow_query_log = on #日志位置 - > 注意 目標文件夾權限, 需要 MySQL 的所有者可寫; 否則會強制不啟用 slow_query_log_file = /var/lib/mysql/mysql-slow.log #添加此項即打開未添加索引的所有日志到慢日志中, 可不打開 log_queries_not_using_indexes = on #小于此值1s會記錄到慢日志 . 默認為 10s,可根據自己實際情況進行設置 long_query_time = 1

具體的使法如下:

root@mysql:/# mysqldumpslow -s c -t 40 /var/lib/mysql/mysql-slow.log

出來的結果是訪問次數最多的40個sql,幾個參數大概意思如下:

-t 顯示多少條 -s 排序,默認是at。c是次數,t是時間,l是lock時間,r是返回結果。如果是ac,at,al,ar則是倒序 -g 可以用正則匹配部分語句

可以參考mysqldumpslow –help,通過這個工具可以看到哪些鎖表,或者其他性能問題,還能看到某些SQL_NO_CACHE提示呢,去想辦法優化把!

root@mysql:/# mysqldumpslow --help perl: warning: Setting locale failed. perl: warning: Please check that your locale settings:LANGUAGE = (unset),LC_ALL = (unset),LANG = "en_US.UTF-8"are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). Usage: mysqldumpslow [ OPTS... ] [ LOGS... ]Parse and summarize the MySQL slow query log. Options are--verbose verbose--debug debug--help write this text to standard output-v verbose-d debug-s ORDER what to sort by (al, at, ar, c, l, r, t), 'at' is defaultal: average lock timear: average rows sentat: average query timec: countl: lock timer: rows sentt: query time -r reverse the sort order (largest last instead of first)-t NUM just show the top n queries-a don't abstract all numbers to N and strings to 'S'-n NUM abstract numbers with at least n digits within names-g PATTERN grep: only consider stmts that include this string-h HOSTNAME hostname of db server for *-slow.log filename (can be wildcard),default is '*', i.e. match all-i NAME name of server instance (if using mysql.server startup script)-l don't subtract lock time from total time

在生產環境中,如果要手工分析日志,查找、分析SQL,顯然是個體力活,MySQL提供了日志分析工具mysqldumpslow

-s, 是表示按照何種方式排序,

c: 訪問計數

l: 鎖定時間

r: 返回記錄

t: 查詢時間

al:平均鎖定時間

ar:平均返回記錄數

at:平均查詢時間

-t, 是top n的意思,即為返回前面多少條的數據;

-g, 后邊可以寫一個正則匹配模式,大小寫不敏感的;

比如

得到返回記錄集最多的10個SQL。

mysqldumpslow -s r -t 10 /database/mysql/mysql06_slow.log

得到訪問次數最多的10個SQL

mysqldumpslow -s c -t 10 /database/mysql/mysql06_slow.log

得到按照時間排序的前10條里面含有左連接的查詢語句。

mysqldumpslow -s t -t 10 -g “left join” /database/mysql/mysql06_slow.log

另外建議在使用這些命令時結合 | 和more 使用 ,否則有可能出現刷屏的情況。

mysqldumpslow -s r -t 20 /mysqldata/mysql/mysql06-slow.log | more

轉載于:https://www.cnblogs.com/heroinss/p/10912140.html

總結

以上是生活随笔為你收集整理的mysql之慢日志查询的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。