MySQL 服務(wù)器的調(diào)優(yōu)策略
1、分析慢查詢?nèi)罩镜牟襟E
1、通過命令查看數(shù)據(jù)庫是否開啟慢查詢?nèi)罩荆?br>
show variables like 'slow_query_log';
2、設(shè)置開啟慢查詢?nèi)罩荆?br>
set global slow_query_log=on;
3、沒有命中索引的查詢記入慢查詢?nèi)罩荆?br>
set global log_queries_not_using_indexes = on;
4、sql 語句超過多少秒記入慢查詢?nèi)罩荆?br>
set global long_query_time=1;
5、查看慢查詢?nèi)罩颈4鏋闇?zhǔn):
show variables like 'slow_query_log_file';
6、直接打開日志進(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 語句執(zhí)行的時(shí)間,sql 語句表示執(zhí)行的具體語句。
3、分析 information_schema.processlist
SELECT id,user,host,DB,command,time,state,info
FROM information_schema.processlist
WHERE TIME>=30;
查詢當(dāng)前服務(wù)器執(zhí)行超過 30 秒的 sql,可以通過定時(shí)任務(wù)周期性的來執(zhí)行這個(gè) sql,就能找到查詢緩慢的 sql 語句。
通過以上兩種方式找出查詢較慢的 sql,進(jìn)行優(yōu)化即可。
2
MySQL 常用調(diào)優(yōu)策略
MySQL調(diào)優(yōu)策略詳見下圖:
MySQL 數(shù)據(jù)庫十二個(gè)應(yīng)知應(yīng)會(huì)知識(shí)點(diǎn)全部結(jié)束。
作者:追夢人dreamcatcher
歡迎關(guān)注微信公眾號(hào) :追夢Java