mysql慢查询分析
1.生成實驗數(shù)據(jù)
使用sql蠕蟲復制足夠多的數(shù)據(jù)
insert into payment (name,amount,address) select name,amount,addrss from payment2.慢日志查詢設置
(1)開啟慢查詢?nèi)罩?/h3> set global slow_query_log = on; show variables like 'slow_query_log';
設置完畢后,查詢是否開啟
set global slow_query_log = on;?
(2)設置慢查詢臨界點
set long_query_time = 1;(3)設置慢查詢存儲的方式
set globle log_output = file;(4)查詢慢查詢的配置信息
show variables like '%quer%';?
3.慢查詢測試
(1)執(zhí)行sql
select * from payment where payment_id<100000;(2)查看日志
日志文件通過參數(shù)得知在/var/lib/mysql目錄中
查看該日志文件
?
可以看到剛才插入數(shù)據(jù)的sql和查詢sql都被記錄起來了,且sql執(zhí)行時間都超過了1s
| Query_time | SQL的查詢時間 |
| Lock_time | 鎖定時間 |
| Rows_sent | 所發(fā)送的行數(shù) |
| Rows_examined | 鎖掃描的行數(shù) |
| SET timestamp=1565697747 | sql執(zhí)行時間 |
| select * from payment | sql執(zhí)行語句 |
4.慢查詢?nèi)罩痉治龉ぞ?/h2>
(1)mysqldumpslow
顯示出慢查詢?nèi)罩局凶盥?0條sql
mysqldumpslow -t 10 /var/lib/mysql/iz2ze6p8tou7n39ta90oziz-slow.log
注意:在mysql數(shù)據(jù)庫所在的服務器上,而不是在mysql>命令行中
(2)pt-query-digest
快速安裝
wget https://www.percona.com/downloads/percona-toolkit/2.2.16/RPM/percona-toolkit-2.2.16-1.noarch.rpm &&?yum localinstall -y ?percona-toolkit-2.2.16-1.noarch.rpm查看服務器信息
pt-summary查看磁盤開銷使用信息
pt-diskstats查看mysql數(shù)據(jù)庫信息
pt-mysql-summary --user=root --password=root分析慢查詢?nèi)罩?/p> pt-query-digest?/var/lib/mysql/iz2ze6p8tou7n39ta90oziz-slow.log
查找mysql的從庫和同步狀態(tài)
pt-slave-find --host=localhost --user=root --password=root查看mysql的死鎖信息
pt-deadlock-logger --user=root --password=root localhost從慢查詢?nèi)罩局蟹治鏊饕褂们闆r
pt-index-usage slow_20131009.log查找數(shù)據(jù)庫表中重復的索引
pt-duplicate-key-checker --host=localhost --user=root --password=root查看mysql表和文件的當前活動IO開銷
pt-ioprofilept-find查找數(shù)據(jù)庫里大于2G的表:
pt-find --user=root --password=root --tablesize +2G5.如何分析
(1)查詢次數(shù)多且每次查詢占用時間長的sql
通常為pt-query-digest分析的前幾個查詢;該工具可以很清楚的看出每個SQL執(zhí)行的次數(shù)及百分比等信息,執(zhí)行的次數(shù)多,占比比較大的SQL
(2)IO大的sql
注意pt-query-digest分析中的Rows examine項。掃描的行數(shù)越多,IO越大。
(3)未命中的索引的SQL
注意pt-query-digest分析中的Rows examine (掃描行數(shù))和Rows Sent(發(fā)送行數(shù))的對比。如果掃描行數(shù)遠遠大于發(fā)送行數(shù),說明該SQL的索引命中率不高,對于這種SQL,我們要重點進行關注。
總結(jié)
以上是生活随笔為你收集整理的mysql慢查询分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Tomcat调优
- 下一篇: linux cmake编译源码,linu