MySQL 服務(wù)器的調(diào)優(yōu)策略


1、分析慢查詢?nèi)罩镜牟襟E

1、通過(guò)命令查看數(shù)據(jù)庫(kù)是否開(kāi)啟慢查詢?nèi)罩荆?br>
show variables like 'slow_query_log';
2、設(shè)置開(kāi)啟慢查詢?nèi)罩荆?br>
set global slow_query_log=on;
3、沒(méi)有命中索引的查詢記入慢查詢?nèi)罩荆?br>
set global log_queries_not_using_indexes = on;
4、sql 語(yǔ)句超過(guò)多少秒記入慢查詢?nèi)罩荆?br>
set global long_query_time=1;
5、查看慢查詢?nèi)罩颈4鏋闇?zhǔn):

show variables like 'slow_query_log_file';
6、直接打開(kāi)日志進(jìn)行查看:

vi + file路徑
7、慢查詢?nèi)罩竟ぞ撸?br>
mysqldumpslow -s at -t 15 file路徑
2、慢查詢?nèi)罩緟?shù)介紹

Time:日志記錄時(shí)間

User@Host:執(zhí)行的用戶與主機(jī)

Query time:查詢耗費(fèi)時(shí)間

Lock time:鎖表時(shí)間

Rows_sent:返回的結(jié)果行數(shù)

Rows_examined:掃描的記錄行數(shù)

Set timestamp:sql 語(yǔ)句執(zhí)行的時(shí)間,sql 語(yǔ)句表示執(zhí)行的具體語(yǔ)句。

3、分析 information_schema.processlist

SELECT id,user,host,DB,command,time,state,info
FROM information_schema.processlist
WHERE TIME>=30;
查詢當(dāng)前服務(wù)器執(zhí)行超過(guò) 30 秒的 sql,可以通過(guò)定時(shí)任務(wù)周期性的來(lái)執(zhí)行這個(gè) sql,就能找到查詢緩慢的 sql 語(yǔ)句。

通過(guò)以上兩種方式找出查詢較慢的 sql,進(jìn)行優(yōu)化即可。

2

MySQL 常用調(diào)優(yōu)策略

MySQL調(diào)優(yōu)策略詳見(jiàn)下圖:

254201_1.png

MySQL 數(shù)據(jù)庫(kù)十二個(gè)應(yīng)知應(yīng)會(huì)知識(shí)點(diǎn)全部結(jié)束。
作者:追夢(mèng)人dreamcatcher


歡迎關(guān)注微信公眾號(hào) :追夢(mèng)Java