怎么開啟MySQL慢日志查詢盏触?

目前在生產(chǎn)環(huán)境的MySQL的主流版本有5.5, 5.6, 5.7三個(gè)版本愉耙,其中阿里云贮尉,騰訊云等主要使用的是5.6的版本(雙機(jī)高可用),?5.7的版本還在測試跟進(jìn)中朴沿,還未在云上大規(guī)模的使用猜谚。

這些主流的版本都已經(jīng)原生支持「慢日志」功能,只需要開啟并使用慢日志分析工具赌渣,即可找出慢查詢語句魏铅。相應(yīng)的云平臺也提供了慢日志的管理界面,不過也是在原生Mysql的慢日志功能的包裝和增強(qiáng)坚芜。


在這之前览芳,我們先看看關(guān)于慢查詢幾個(gè)重要的參數(shù):


開啟慢日志功能

有2種方式,一是修改mysql的配置文件鸿竖,二是通過set global語句來實(shí)現(xiàn)沧竟。


1、修改配置文件缚忧,Windows?的配置文件為?my.ini悟泵,一般在?MySQL?的安裝目錄下。linux?的配置文件為my.cnf?闪水,一般在?/etc?目錄下糕非。

在linux下,vim /etc/my.cnf球榆,在[mysqld]內(nèi)容項(xiàng)下增加

slow_query_log = ON

long_query_time = 2

我這里設(shè)置慢查詢時(shí)間long_query_time 設(shè)置的是2s朽肥,認(rèn)為超過2秒即為慢查詢

沒有配置日志文件路徑和名稱,就使用默認(rèn)的持钉。

重啟msyqld服務(wù)就可以生效衡招,登入msyql,查看生效情況

SHOW VARIABLES WHERE Variable_name IN('slow_query_log','long_query_time','slow_query_log_file','log-query-not-using-indexes');


可以看到重啟后右钾,日志生效蚁吝。


2旱爆、二是通過set global語句來實(shí)現(xiàn)舀射,可以在mysql -uroot -p登錄后,輸入:

SET GLOBAL slow_query_log = 'ON';

就可以立即開始慢日志記錄怀伦,如果想指定時(shí)間和文件位置脆烟,可以追加配置:

SET GLOBAL long_query_time = X;

X默認(rèn)是10s,也就是說超過10s的查詢會被記入慢日志房待。


SET GLOBAL slow_query_log_file = '/path/filename';

日志路徑默認(rèn)是:/var/lib/mysql/hostname-slow.log?文件名中默認(rèn)包含了當(dāng)前服務(wù)器的hostname邢羔,我們可以自定義路徑和文件名



可以立即生效驼抹,但是msyqld重啟以后會失效,因?yàn)閙syql重啟的時(shí)候拜鹤,是按照配置文件來加載配置的框冀,set global語句,只對當(dāng)前所有會話生效敏簿,并未修改配置文件明也。


慢日志除了記錄到文件,還可以記錄到數(shù)據(jù)庫表中惯裕。只要將mysql全局變量log_output設(shè)置為?TABLE即可温数。MySQL會將日志分別記錄到表mysql.gengera_log和mysql.slow_log二張表中。但是蜻势,我們推薦將日志記錄 在日記文件中撑刺,記錄到文件可以支持微秒,記錄到到數(shù)據(jù)庫表中并不支持握玛。


驗(yàn)證:

在測試的時(shí)候够傍,即便有幾十萬的記錄,一條語句很可能零點(diǎn)幾秒就執(zhí)行完了败许。好在Mysql提供了一個(gè)SLEEP函數(shù)王带,可以延遲返回查詢結(jié)果,比如:

現(xiàn)在去查看日志


可以看到剛才的慢查詢記錄市殷。


當(dāng)然隨著時(shí)間積累愕撰,慢日志文件會原來越大,使用cat醋寝,grep等命令分析會很困難搞挣。Mysql自帶mysqldumpslow的可以用做分析,當(dāng)然還有一個(gè)第三方開源的工具音羞,比如mk-query-digest囱桨,mysqlsla,myprofi

下面是網(wǎng)上總結(jié)的幾個(gè)工具

mysqldumpslow支持不支持perlmysql官方自帶

mysqlsla支持支持perl功能強(qiáng)大,數(shù)據(jù)報(bào)表齊全,定制化能力強(qiáng).

mysql-explain-slow-log支持不支持perl無

mysql-log-filter支持部分支持python or php不失功能的前提下,保持輸出簡潔

myprofi支持不支持php非常精簡



可能值得我們注意的地方有:

1嗅绰、初始化鎖的時(shí)間不算在執(zhí)行時(shí)間內(nèi)舍肠。Mysqld服務(wù)寫慢日志,是在sql語句執(zhí)行完窘面,并且所有的鎖釋放之后才進(jìn)行的翠语,所以日志順序和執(zhí)行順序有所不同。

2财边、如果是主從架構(gòu)(Master肌括,Slave),默認(rèn)從庫不會記錄相同的慢日志酣难。如果要修改谍夭,可以用log_slow_slave_statements來設(shè)置

找出慢日志黑滴,可以有效的幫我們我們優(yōu)化MySQL語句,當(dāng)然不是簡單的加個(gè)索引的事情紧索,可能涉及一些不合理的設(shè)計(jì)袁辈,比如該應(yīng)用層的操作,讓sql來做了珠漂;該做中間統(tǒng)計(jì)表的沒有做吵瞻,每次都是大表實(shí)時(shí)匯總;該用redis緩存的沒有用上甘磨;數(shù)據(jù)庫字段類型設(shè)計(jì)不合理橡羞,等等,需要細(xì)處著手济舆,全盤考慮卿泽。

具體參數(shù)可參考MySQL官方鏈接:

https://dev.mysql.com/doc/refman/5.7/en/slow-query-log.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市滋觉,隨后出現(xiàn)的幾起案子签夭,更是在濱河造成了極大的恐慌,老刑警劉巖椎侠,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件第租,死亡現(xiàn)場離奇詭異,居然都是意外死亡我纪,警方通過查閱死者的電腦和手機(jī)慎宾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來浅悉,“玉大人趟据,你說我怎么就攤上這事∈踅。” “怎么了汹碱?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長荞估。 經(jīng)常有香客問我咳促,道長,這世上最難降的妖魔是什么勘伺? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任跪腹,我火速辦了婚禮,結(jié)果婚禮上娇昙,老公的妹妹穿的比我還像新娘尺迂。我一直安慰自己笤妙,他們只是感情好冒掌,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布噪裕。 她就那樣靜靜地躺著,像睡著了一般股毫。 火紅的嫁衣襯著肌膚如雪膳音。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天铃诬,我揣著相機(jī)與錄音祭陷,去河邊找鬼。 笑死趣席,一個(gè)胖子當(dāng)著我的面吹牛兵志,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播宣肚,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼想罕,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了霉涨?” 一聲冷哼從身側(cè)響起按价,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎笙瑟,沒想到半個(gè)月后楼镐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡往枷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年框产,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片错洁。...
    茶點(diǎn)故事閱讀 38,094評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡茅信,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出墓臭,到底是詐尸還是另有隱情蘸鲸,我是刑警寧澤,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布窿锉,位于F島的核電站酌摇,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏嗡载。R本人自食惡果不足惜窑多,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望洼滚。 院中可真熱鬧埂息,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至拾弃,卻和暖如春值桩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背豪椿。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工奔坟, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人搭盾。 一個(gè)月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓咳秉,卻偏偏與公主長得像,于是被迫代替她去往敵國和親鸯隅。 傳聞我的和親對象是個(gè)殘疾皇子滴某,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評論 2 345