十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
配置開啟如下:

創(chuàng)新互聯(lián)公司一直秉承“誠信做人,踏實(shí)做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個客戶多一個朋友!為您提供網(wǎng)站設(shè)計制作、成都網(wǎng)站設(shè)計、成都網(wǎng)頁設(shè)計、重慶小程序開發(fā)、成都網(wǎng)站開發(fā)、成都網(wǎng)站制作、成都軟件開發(fā)、App定制開發(fā)是成都本地專業(yè)的網(wǎng)站建設(shè)和網(wǎng)站設(shè)計公司,等你一起來見證!
Linux:
在mysql配置文件my.cnf中增加
log-slow-queries=/var/lib/mysql/slowquery.log (指定日志文件存放位置,可以為空,系統(tǒng)會給一個缺省的文件host_name-slow.log)
long_query_time=2 (記錄超過的時間,默認(rèn)為10s)
log-queries-not-using-indexes (log下來沒有使用索引的query,可以根據(jù)情況決定是否開啟)
log-long-format (如果設(shè)置了,所有沒有使用索引的查詢也將被記錄)
Windows:
在my.ini的[mysqld]添加如下語句:
log-slow-queries = E:\web\mysql\log\mysqlslowquery.log
long_query_time = 2(其他參數(shù)如上)
開啟慢查詢?nèi)罩?/p>
mysql set global slow_query_log=1;
定義時間SQL查詢的超時時間
mysql set global long_query_time = 0.005;
查看慢查詢?nèi)罩镜谋4媛窂?/p>
mysql show global variables like 'slow_query_log_file';
查看慢查詢
cat /var/log/mysql/slow.log
1,配置開啟
Linux:
在mysql配置文件my.cnf中增加
log-slow-queries=/var/lib/mysql/slowquery.log (指定日志文件存放位置,可以為空,系統(tǒng)會給一個缺省的文件host_name-slow.log)long_query_time=2 (記錄超過的時間,默認(rèn)為10s)log-queries-not-using-indexes (log下來沒有使用索引的query,可以根據(jù)情況決定是否開啟)log-long-format (如果設(shè)置了,所有沒有使用索引的查詢也將被記錄)
Windows:
在my.ini的[mysqld]添加如下語句:log-slow-queries = E:\web\mysql\log\mysqlslowquery.loglong_query_time = 2(其他參數(shù)如上)
2,查看方式
Linux:
使用mysql自帶命令mysqldumpslow查看
常用命令
-s ORDER what to sort by (t, at, l, al, r, ar etc), 'at’ is default
-t NUM just show the top n queries
-g PATTERN grep: only consider stmts that include this string
s,是order的順序,說明寫的不夠詳細(xì),包括看了代碼,主要有 c,t,l,r和ac,at,al,ar,分別是按照query次數(shù),時間,lock的時間和返回的記錄數(shù)來排序,前面加了a的時倒序 -t,是top n的意思,即為返回前面多少條的數(shù)據(jù) -g,后邊可以寫一個正則匹配模式,大小寫不敏感的
mysqldumpslow -s c -t 20 host-slow.log
mysqldumpslow -s r -t 20 host-slow.log
上述命令可以看出訪問次數(shù)最多的20個sql語句和返回記錄集最多的20個sql。
mysqldumpslow -t 10 -s t -g “l(fā)eft join” host-slow.log這個是按照時間返回前10條里面含有左連接的sql語句。
long_query_time 參數(shù)的查看
默認(rèn)是10秒,10秒以上的sql會記錄。可進(jìn)行值的修改,
long_query_time 默認(rèn)不開啟 ,如果不是需要進(jìn)行開始調(diào)優(yōu),一般不建議開啟此參數(shù)。
永久開啟:
在my.cnf中的
1.查看慢查詢的時長
看此圖默認(rèn)10秒,是大于10秒,不等于10秒。
2.修改此時長
臨時修改,重啟mysql后失效,修改后需要新開連接才能查詢到
永久在配制文件中修改
查看慢sql個數(shù)
將所有沒有使用帶索引的查詢語句全部寫到慢查詢?nèi)罩局?/p>
設(shè)置沒帶索引的慢sql進(jìn)行記錄
最后匯總my.cnf配制
如何查找mysql中查詢慢的sql語句
一、mysql數(shù)據(jù)庫有幾個配置選項(xiàng)可以幫助我們及時捕獲低效sql語句
1,slow_query_log
這個參數(shù)設(shè)置為on,可以捕獲執(zhí)行時間超過一定數(shù)值的sql語句。
2,long_query_time
當(dāng)sql語句執(zhí)行時間超過此數(shù)值時,就會被記錄到日志中,建議設(shè)置為1或者更短。
3,slow_query_log_file
記錄日志的文件名。
4,log_queries_not_using_indexes
這個參數(shù)設(shè)置為on,可以捕獲到所有未使用索引的sql語句,盡管這個sql語句有可能執(zhí)行得挺快。
二、檢測mysql中sql語句的效率的方法
1、通過查詢?nèi)罩?/p>
(1)、windows下開啟mysql慢查詢
mysql在windows系統(tǒng)中的配置文件一般是是my.ini找到[mysqld]下面加上
代碼如下
log-slow-queries
=
f:/mysql/log/mysqlslowquery。log
long_query_time
=
2
(2)、linux下啟用mysql慢查詢
mysql在windows系統(tǒng)中的配置文件一般是是my.cnf找到[mysqld]下面加上
代碼如下
log-slow-queries=/data/mysqldata/slowquery。log
long_query_time=2
這是一個慢查詢?nèi)罩镜恼故竟ぞ?,能夠幫?DBA 或者開發(fā)人員分析數(shù)據(jù)庫的性能問題,給出全面的數(shù)據(jù)擺脫直接查看 slow-log。QAN(Query Analytics)
PMM 目前有 2 個版本,但是對于 QAN 來說其大致由三部分組成:
QAN-Agent(client):負(fù)責(zé)采集 slow-log 的數(shù)據(jù)并上報到服務(wù)端
QAN-API(server):負(fù)責(zé)存儲采集的數(shù)據(jù),并對外提供查詢接口
QAN-APP:專門用來展示慢查詢數(shù)據(jù)的 grafana 第三方插件
1. 數(shù)據(jù)流轉(zhuǎn)
slow-log -- QAN-Agent -- QAN-API -- QAN-APP(grafana)
2. pmm1 架構(gòu)圖
3. pmm2 架構(gòu)圖