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

歡迎訪問 生活随笔!

生活随笔

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

数据库

mysql慢查询分析

發(fā)布時間:2025/3/20 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql慢查询分析 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.生成實驗數(shù)據(jù)

使用sql蠕蟲復制足夠多的數(shù)據(jù)

insert into payment (name,amount,address) select name,amount,addrss from payment

2.慢日志查詢設置

(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_timeSQL的查詢時間
Lock_time鎖定時間
Rows_sent所發(fā)送的行數(shù)
Rows_examined鎖掃描的行數(shù)
SET timestamp=1565697747sql執(zhí)行時間
select * from paymentsql執(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-ioprofile

pt-find查找數(shù)據(jù)庫里大于2G的表:

pt-find --user=root --password=root --tablesize +2G

5.如何分析

(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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。