成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

SQL語句引起的空間暴增分析

IT那活兒 / 2982人閱讀
SQL語句引起的空間暴增分析


概述


MySQL數(shù)據(jù)庫由數(shù)據(jù)文件與各類日志文件組成,通常情況下,空間增長是由數(shù)據(jù)文件、binlog文件引起的,但個別情況下是短期內(nèi)MySQL產(chǎn)生了大量的磁盤臨時表引起的。本案例就是由低效sql產(chǎn)生了大量磁盤臨時表引起的。




分析


收到短信告警,一生產(chǎn)庫空間使用率達(dá)到90%,隨后登陸主機(jī)查看,發(fā)現(xiàn)空間使用率為45%,難道是誤告警?為了確認(rèn)告警的真實性,查看該MySQL實例占用空間情況,數(shù)據(jù)文件占用空間不高,難道業(yè)務(wù)做數(shù)據(jù)刪除了?緊接著查看binlog文件占用情況,其占用空間也不高,而且該時間段產(chǎn)生的binlog比較少,真的是誤告警?查看監(jiān)控頁面:


空間使用率是達(dá)到過90%,不是誤告警,可隨后空間也立即釋放了。


查看監(jiān)控

登陸監(jiān)控平臺,查看主機(jī)空間使用率暴漲期間,主機(jī)及數(shù)據(jù)庫的性能情況和數(shù)據(jù)庫本身正在進(jìn)行哪些操作。


主機(jī)層面


空間使用率暴漲期間,主機(jī)負(fù)載達(dá)到了40,較正常壓力值高出N多倍;cpu使用情況也較正常壓力值高出很多;IO已經(jīng)打滿,說明這段時間內(nèi)在進(jìn)行大量的IO操作。


數(shù)據(jù)庫層面


數(shù)據(jù)庫活躍連接達(dá)到近40,也比平常高出很多,但數(shù)據(jù)庫每秒的請求量卻比平常低,說明數(shù)據(jù)庫此時處在阻塞狀態(tài),等待后臺的大量IO操作完成。


數(shù)據(jù)庫會話都在進(jìn)行數(shù)據(jù)排序操作,而SQL語句中排序字段選擇不合適,導(dǎo)致產(chǎn)生了大量臨時表,特別是因內(nèi)存放不下而置換至磁盤而產(chǎn)生的磁盤臨時表。


大量IO原因就是為了把數(shù)據(jù)從內(nèi)存置換至磁盤產(chǎn)生的,而這批數(shù)據(jù)磁盤臨時表占用了大量空間,一旦SQL執(zhí)行結(jié)束或終止,相應(yīng)占用的空間就會立即釋放。


慢日志分析

分析相應(yīng)時間段慢日志文件,發(fā)現(xiàn)以下SQL語句存在問題,消耗大量主機(jī)資源。

該SQL共運(yùn)行154次,平均每次運(yùn)行3981s,平均每次檢索24670000條記錄,平均每次返回2490000條記錄。


該SQL語句主要存在以下問題:


  • 查詢時間字段上無索引。

  • 查詢時間跨度太大,即使有索引也未必用的上。

  • 排序字段過多且不合理。

  • 排序數(shù)據(jù)量大,導(dǎo)致排序過程中因內(nèi)存有限而把數(shù)據(jù)轉(zhuǎn)換至磁盤,效率太低且短時間內(nèi)占用大量空間。

  • 每次分頁查詢重復(fù)上次操作,且越靠后的分頁查詢,效率越低。




總結(jié)



數(shù)據(jù)庫臨時表的產(chǎn)生,特別是磁盤臨時表,如果短時間內(nèi)出現(xiàn)大量,導(dǎo)致主機(jī)空間使用率暴漲達(dá)到100%,那么相應(yīng)數(shù)據(jù)庫就會被hang住,無法再對外提供服務(wù)。在實際生產(chǎn)上避免此情況的發(fā)生,除了SQL優(yōu)化外,也要定期進(jìn)行主機(jī)與數(shù)據(jù)庫空間的清理,時刻保持空間使用率相對比較低。當(dāng)然告警的有效性也是高效手段之一。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/130187.html

相關(guān)文章

  • RedisKEYS命令引起宕機(jī)事件

    摘要:最近的互聯(lián)網(wǎng)線上事故發(fā)生比較頻繁,年月號順豐發(fā)生了一起線上刪庫事件,在這里就不介紹了。最后的最后,線上操作的任何一條命令,再小心也不為過,因為由于你的一個符號而引起的事故可能是你所承擔(dān)不起的。 摘要: 使用 Redis 的開發(fā)者必看,吸取教訓(xùn)??! 原文:Redis 的 KEYS 命令引起 RDS 數(shù)據(jù)庫雪崩,RDS 發(fā)生兩次宕機(jī),造成幾百萬的資金損失 作者:陳浩翔 Fundebu...

    ixlei 評論0 收藏0
  • RedisKEYS命令引起宕機(jī)事件

    摘要:最近的互聯(lián)網(wǎng)線上事故發(fā)生比較頻繁,年月號順豐發(fā)生了一起線上刪庫事件,在這里就不介紹了。最后的最后,線上操作的任何一條命令,再小心也不為過,因為由于你的一個符號而引起的事故可能是你所承擔(dān)不起的。 摘要: 使用 Redis 的開發(fā)者必看,吸取教訓(xùn)??! 原文:Redis 的 KEYS 命令引起 RDS 數(shù)據(jù)庫雪崩,RDS 發(fā)生兩次宕機(jī),造成幾百萬的資金損失 作者:陳浩翔 Fundebu...

    zoomdong 評論0 收藏0

發(fā)表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<