溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

一個MySQL 單表查詢SQL,引起一次“故事”

發(fā)布時間:2020-04-14 03:16:06 來源:網(wǎng)絡(luò) 閱讀:451 作者:roidba 欄目:MySQL數(shù)據(jù)庫

一、描述
故事的過程是這個樣子的,MySQL 數(shù)據(jù)庫有一張40多G的大表,開發(fā)人員執(zhí)行了一個單表查詢,結(jié)果我就收到了一個磁盤空間滿的告警。一下子就不淡定了,誰在搞事情,腦海里各種可能行想了一遍,想到的最多的就是ibtmp1爆了,第一時間線上看一下,查到了最大的那個文件,結(jié)果和想的一樣。這里我們要看SQL是怎么寫的,表結(jié)構(gòu)是什么樣子,然后和官網(wǎng)對比,MySQL在查詢的時候有很多可能會使用磁盤臨時表,包括表連接、排序、大字段等等。

二、解決方法
臨時解決方法:
1、臨時擴(kuò)一下硬盤
2、直接重啟

終結(jié)解決方案
操作步驟:
1、檢查數(shù)據(jù)庫狀態(tài)
ps -ef|grep mysql

2、檢查主備庫狀態(tài)
show slave status \G;

3、檢查數(shù)據(jù)庫關(guān)閉參數(shù),要求為1
show variables like 'innodb_fast_shutdown';

4、關(guān)閉同步進(jìn)程
stop slave;

5、關(guān)閉數(shù)據(jù)庫
shutdown;

6、設(shè)置數(shù)據(jù)庫臨時表空間參數(shù)
#/etc/my.cnf
innodb_temp_data_file_path = ibtmp1:12M:autoextend:max:10G

7、啟動數(shù)據(jù)庫服務(wù)、同步線程
mysqld_safe --defaults-file=/etc/my.cnf &
start slave;
show slave status\G;

8、檢查數(shù)據(jù)庫臨時表空間參數(shù)
show variables like 'innodb_temp_data_file_path';

9、查看ibtmp1文件大小
du -sh ibtmp1

三、小潔
1、永遠(yuǎn)不要小視一條select xxx from tab;如果你不知道你在干嘛,不知道其中的風(fēng)險,不要在生產(chǎn)系統(tǒng)敲任何一個指令。
2、要有敬畏之心。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI