一、簡(jiǎn)介
MySQL的慢查詢?nèi)罩臼荕ySQL提供的一種日志記錄,它用來記錄在MySQL中響應(yīng)時(shí)間超過閥值的語句,具體指運(yùn)行時(shí)間超過值的SQL,則會(huì)被記錄到慢查詢?nèi)罩局小5哪J(rèn)值為10,意思是運(yùn)行10S以上的語句。默認(rèn)情況下,Mysql數(shù)據(jù)庫并不啟動(dòng)慢查詢?nèi)罩?strong>mysql數(shù)據(jù)庫查詢慢,需要我們手動(dòng)來設(shè)置這個(gè)參數(shù),當(dāng)然,如果不是調(diào)優(yōu)需要的話,一般不建議啟動(dòng)該參數(shù),因?yàn)殚_啟慢查詢?nèi)罩緯?huì)或多或少帶來一定的性能影響。慢查詢?nèi)罩局С謱⑷罩居涗泴懭胛募仓С謱⑷罩居涗泴懭霐?shù)據(jù)庫表。
開啟慢查詢?nèi)罩?strong>mysql數(shù)據(jù)庫查詢慢,可以讓MySQL記錄下查詢超過指定時(shí)間的語句,通過定位分析性能的瓶頸,才能更好的優(yōu)化數(shù)據(jù)庫系統(tǒng)的性能。
二、參數(shù)說明
慢查詢開啟狀態(tài)
慢查詢?nèi)罩敬娣诺奈恢茫ㄟ@個(gè)目錄需要MySQL的運(yùn)行帳號(hào)的可寫權(quán)限,一般設(shè)置為MySQL的數(shù)據(jù)存放目錄)
查詢超過多少秒才記錄
三、設(shè)置步驟
1.查看慢查詢相關(guān)參數(shù)
2.設(shè)置方法
方法一:全局變量設(shè)置
將 全局變量設(shè)置為“ON”狀態(tài)
mysql> set global slow_query_log='ON';
設(shè)置慢查詢?nèi)罩敬娣诺奈恢?/p>
mysql> set global slow_query_log_file='/usr/local/mysql/data/slow.log';
查詢超過1秒就記錄
mysql> set global long_query_time=1;
方法二:配置文件設(shè)置
修改配置文件f,在[]下的下方加入
[mysqld]
slow_query_log = ON
slow_query_log_file = /usr/local/mysql/data/slow.log
long_query_time = 1
3.重啟MySQL服務(wù)
service mysqld restart
4.查看設(shè)置后的參數(shù)
四、測(cè)試
1.執(zhí)行一條慢查詢SQL語句
mysql> select sleep(2);
2.查看是否生成慢查詢?nèi)罩?/p>
ls /usr/local/mysql/data/slow.log
如果日志存在,MySQL開啟慢查詢?cè)O(shè)置成功!
文章的最后順便給大家推薦一個(gè)Java架構(gòu)方面的交流學(xué)習(xí)qq群:,里面不僅可以交流討論,還有面試經(jīng)驗(yàn)分享以及免費(fèi)的資料下載,包括,,Netty源碼分析,高并發(fā)、高性能、分布式、微服務(wù)架構(gòu)的原理,JVM性能優(yōu)化這些成為架構(gòu)師必備的知識(shí)體系。相信對(duì)于已經(jīng)工作和遇到技術(shù)瓶頸的碼友,在這個(gè)群里會(huì)有你需要的內(nèi)容。