亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

MySQL問答系列之如何避免ibdata1文件大小暴漲

2024-07-25 19:08:57
字體:
供稿:網(wǎng)友

0、導(dǎo)讀

ibdata1文件是什么?

ibdata1是一個(gè)用來構(gòu)建innodb系統(tǒng)表空間的文件,這個(gè)文件包含了innodb表的元數(shù)據(jù)、撤銷記錄、修改buffer和雙寫buffer。如果file-per-table選項(xiàng)打開的話,該文件則不一定包含所有表的數(shù)據(jù)。當(dāng)innodb_file_per_table選項(xiàng)打開的話,新創(chuàng)建表的數(shù)據(jù)和索引則不會(huì)存在系統(tǒng)表空間中,而是存放在各自表的.ibd文件中.

顯然這個(gè)文件會(huì)越來越大,innodb_autoextend_increment選項(xiàng)則指定了該文件每次自動(dòng)增長的步進(jìn),默認(rèn)是8M.

是什么原因?qū)е耰bdata1文件會(huì)越來越大?

ibdata1存放數(shù)據(jù),索引和緩存等,是MYSQL的最主要的數(shù)據(jù)。所以隨著數(shù)據(jù)庫越來越大,表也會(huì)越大,這個(gè)無法避免的。如果時(shí)間長了,越來越大,我們?cè)谔幚砣罩竞涂臻g的時(shí)候就不是那么方便了,就不知從何入手了。接下來我們就要處理下這樣的情況,分庫存儲(chǔ)數(shù)據(jù)。

遇到InnoDB的共享表空間文件ibdata1文件大小暴增時(shí),應(yīng)該如何處理?

1、問題背景

用MySQL/InnoDB的童鞋可能也會(huì)有過煩惱,不知道為什么原因,ibdata1文件莫名其妙的增大,不知道該如何讓它縮回去,就跟30歲之后男人的肚腩一樣,汗啊,可喜可賀的是我的肚腩還沒長出來,hoho~

正式開始之前,我們要先知道ibdata1文件是干什么用的。

ibdata1文件是InnoDB存儲(chǔ)引擎的共享表空間文件,該文件中主要存儲(chǔ)著下面這些數(shù)據(jù):

  • data dictionary
  • double write buffer
  • insert buffer/change buffer
  • rollback segments
  • undo space
  • Foreign key constraint system tables

另外,當(dāng)選項(xiàng) innodb_file_per_table = 0 時(shí),在ibdata1文件中還需要存儲(chǔ) InnoDB 表數(shù)據(jù)&索引。ibdata1文件從5.6.7版本開始,默認(rèn)大小是12MB,而在這之前默認(rèn)大小是10MB,其相關(guān)選項(xiàng)是 innodb_data_file_path,比如我一般是這么設(shè)置的:

innodb_data_file_path = ibdata1:1G:autoextend

當(dāng)然了,無論是否啟用了 innodb_file_per_table = 1,ibdata1文件都必須存在,因?yàn)樗仨毚鎯?chǔ)上述 InnoDB 引擎所依賴&必須的數(shù)據(jù),尤其是上面加粗標(biāo)識(shí)的 rollback segments 和 undo space,它倆是引起 ibdata1 文件大小增加的最大原因,我們下面會(huì)詳細(xì)說。

2、原因分析

我們知道,InnoDB是支持MVCC的,它和ORACLE類似,采用 undo log、redo log來實(shí)現(xiàn)MVCC特性的。在事務(wù)中對(duì)一行數(shù)據(jù)進(jìn)行修改時(shí),InnoDB 會(huì)把這行數(shù)據(jù)的舊版本數(shù)據(jù)存儲(chǔ)一份在undo log中,如果這時(shí)候有另一個(gè)事務(wù)又要修改這行數(shù)據(jù),就又會(huì)把該事物最新可見的數(shù)據(jù)版本存儲(chǔ)一份在undo log中,以此類推,如果該數(shù)據(jù)當(dāng)前有N個(gè)事務(wù)要對(duì)其進(jìn)行修改,就需要存儲(chǔ)N份歷史版本(和ORACLE略有不同的是,InnoDB的undo log不完全是物理block,主要是邏輯日志,這個(gè)可以查看 InnoDB 源碼或其他相關(guān)資料)。這些 undo log 需要等待該事務(wù)結(jié)束后,并再次根據(jù)事務(wù)隔離級(jí)別所決定的對(duì)其他事務(wù)而言的可見性進(jìn)行判斷,確認(rèn)是否可以將這些 undo log 刪除掉,這個(gè)工作稱為 purge(purge 工作不僅僅是刪除過期不用的 undo log,還有其他,以后有機(jī)會(huì)再說)。

那么問題來了,如果當(dāng)前有個(gè)事務(wù)中需要讀取到大量數(shù)據(jù)的歷史版本,而該事務(wù)因?yàn)槟承┰驘o法今早提交或回滾,而該事務(wù)發(fā)起之后又有大量事務(wù)需要對(duì)這些數(shù)據(jù)進(jìn)行修改,這些新事務(wù)產(chǎn)生的 undo log 就一直無法被刪除掉,形成了堆積,這就是導(dǎo)致 ibdata1 文件大小增大最主要的原因之一。這種情況最經(jīng)典的場(chǎng)景就是大量數(shù)據(jù)備份,因此我們建議把備份工作放在專用的 slave server 上,不要放在 master server 上。

另一種情況是,InnoDB的 purge 工作因?yàn)楸敬?file i/o 性能是在太差或其他的原因,一直無法及時(shí)把可以刪除的 undo log 進(jìn)行purge 從而形成堆積,這是導(dǎo)致 ibdata1 文件大小增大另一個(gè)最主要的原因。這種場(chǎng)景發(fā)生在服務(wù)器硬件配置比較弱,沒有及時(shí)跟上業(yè)務(wù)發(fā)展而升級(jí)的情況。

比較少見的一種是在早期運(yùn)行在32位系統(tǒng)的MySQL版本中存在bug,當(dāng)發(fā)現(xiàn)待 purge 的 undo log 總量超過某個(gè)值時(shí),purge 線程直接放棄抵抗,再也不進(jìn)行 purge 了,這個(gè)問題在我們?cè)缙谑褂?2位MySQL 5.0版本時(shí)遇到的比較多,我們?cè)?jīng)遇到這個(gè)文件漲到100多G的情況。后來我們費(fèi)了很大功夫把這些實(shí)例都遷移到64位系統(tǒng)下,終于解決了這個(gè)問題。

最后一個(gè)是,選項(xiàng) innodb_data_file_path 值一開始就沒調(diào)整或者設(shè)置很小,這就必不可免導(dǎo)致 ibdata1 文件增大了。Percona官方提供的 my.cnf 參考文件中也一直沒把這個(gè)值加大,讓我百思不得其解,難道是為了像那個(gè)經(jīng)常被我吐槽的xx那樣,故意留個(gè)暗門,好方便后續(xù)幫客戶進(jìn)行優(yōu)化嗎?(我心理太陰暗了,不好不好~~)

稍微總結(jié)下,導(dǎo)致ibdata1文件大小暴漲的原因有下面幾個(gè):

  • 有大量并發(fā)事務(wù),產(chǎn)生大量的undo log;
  • 有舊事務(wù)長時(shí)間未提交,產(chǎn)生大量舊undo log;
  • file i/o性能差,purge進(jìn)度慢;
  • 初始化設(shè)置太小不夠用;
  • 32-bit系統(tǒng)下有bug。

稍微題外話補(bǔ)充下,另一個(gè)熱門數(shù)據(jù)庫 PostgreSQL 的做法是把各個(gè)歷史版本的數(shù)據(jù) 和 原數(shù)據(jù)表空間 存儲(chǔ)在一起,所以不存在本案例的問題,也因此 PostgreSQL 的事務(wù)回滾會(huì)非常快,并且還需要定期做 vaccum 工作(具體可參見PostgreSQL的MVCC實(shí)現(xiàn)機(jī)制,我可能說的不是完全正確哈)

3、解決方法建議

看到上面的這些問題原因描述,有些同學(xué)可能覺得這個(gè)好辦啊,對(duì) ibdata1 文件大小進(jìn)行收縮,回收表空間不就結(jié)了嗎。悲劇的是,截止目前,InnoDB 還沒有辦法對(duì) ibdata1 文件表空間進(jìn)行回收/收縮,一旦 ibdata1 文件的肚子被搞大了,只能把數(shù)據(jù)先備份后恢復(fù)再次重新初始化實(shí)例才能恢復(fù)原先的大小,或者把依次把各個(gè)獨(dú)立表空間文件備份恢復(fù)到一個(gè)新實(shí)例中,除此外,沒什么更好的辦法了。

當(dāng)然了,這個(gè)問題也并不是不能防范,根據(jù)上面提到的原因,相應(yīng)的建議對(duì)策是:

  • 升級(jí)到5.6及以上(64-bit),采用獨(dú)立undo表空間,5.6版本開始就支持獨(dú)立的undo表空間了,再也不用擔(dān)心會(huì)把 ibdata1 文件搞大;
  • 初始化設(shè)置時(shí),把 ibdata1 文件至少設(shè)置為1GB以上;
  • 增加purge線程數(shù),比如設(shè)置 innodb_purge_threads = 8;
  • 提高file i/o能力,該上SSD的趕緊上;
  • 事務(wù)及時(shí)提交,不要積壓;
  • 默認(rèn)打開autocommit = 1,避免忘了某個(gè)事務(wù)長時(shí)間未提交;
  • 檢查開發(fā)框架,確認(rèn)是否設(shè)置了 autocommit=0,記得在事務(wù)結(jié)束后都有顯式提交或回滾。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)VeVb武林網(wǎng)的支持。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到MYSQL教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
欧美激情亚洲| 青青操免费在线视频| 欧美福利视频在线观看| 丰满少妇久久久久久久| 特级毛片在线| 欧美精品一区二区三区很污很色的| 一区二区三区在线视频111| www黄色av| 久久久日本电影| 俺去啦最新地址| 欧美少妇在线观看| 日本动漫同人动漫在线观看| 久久手机视频| 精品午夜电影| 丝袜制服一区二区三区| 精品伦理一区二区| 欧美变态tickling挠脚心| 色综合久久天天| 884aa四虎免费影库4h| 手机看片1024国产| 日韩一区国产二区欧美三区| 亚洲国产精品一区在线观看不卡| 好吊色一区二区三区| 91麻豆蜜桃一区二区三区| 色偷偷偷综合中文字幕;dd| 亚洲黄色一区二区三区| 亚洲男人天堂2021| 久久天天躁狠狠躁夜夜爽蜜月| 在线观看日韩片| 亚洲人做受高潮| 久久不射2019中文字幕| 亚洲一区二区三区av无码| 看黄色免费网站| 日韩成人高清在线| 久久综合精品国产一区二区三区| **欧美日韩在线| 国产美女无遮挡网站| 91精彩视频| 欧美一级黑人aaaaaaa做受| 黄页网站在线播放| 国产在线999| 欧美精品欧美精品系列| 久久精品国产久精国产爱| 欧美在线观看在线观看| 99精品久久只有精品| 亚洲区综合中文字幕日日| 亚洲国产精品va在线看黑人动漫| 亚洲人高潮女人毛茸茸| jizz中国免费| 三级黄视频在线观看| 7m第一福利500精品视频| 91免费精品国自产拍在线不卡| 日韩在线综合| 午夜精品成人在线视频| 国产农村妇女毛片精品| 欧美亚洲综合另类| 国产叼嘿视频在线观看| 99久久久国产精品免费调教网站| 九色|91porny| 亚洲美女性视频| 欧美momandson| 成a人片国产精品| 波多野结衣的一区二区三区| 国产区欧美区日韩区| 日韩在线第一区| 青草视频在线观看免费| 快播亚洲色图| jizzjizz在线| www.久久久久久| 色94色欧美sute亚洲线路二| 国产真实伦在线观看| 国产av无码专区亚洲a∨毛片| 一区二区三区av在线| www.av片| 黄色a在线观看| 亚洲精品91在线| 亚洲啊啊啊啊啊| 91精品91久久久久久| 性欧美超级视频| 成人精品电影在线观看| 鬼打鬼之黄金道士1992林正英| 中文字幕第15页| 日韩欧美一区二区三区不卡视频| 国产欧美日韩一区二区三区在线观看| 天天做天天爱天天综合网2021| 国产精品美腿一区在线看| 欧美色图俺去了| xxxx黄色| 少妇精品久久久久久久久久| 久久精品99国产精品| 99精品在线免费| 欧美在线xxx| 日本亚洲一区二区三区| 天天天天天天操| 国产私拍一区| 亚洲一区网站| 激情亚洲另类图片区小说区| 欧美私人情侣网站| 免费观看黄色av| 国产一区在线观看视频| 日本中文字幕在线免费观看| 久久艳妇乳肉豪妇荡乳av| 在线观看免费亚洲| 国产精品第七页| 懂色av蜜臀av粉嫩av分享吧最新章节| 最近国语视频在线观看免费播放| 李丽珍裸体午夜理伦片| 欧美最近摘花xxxx摘花| 麻豆av一区二区三区久久| 日本一区二区三区电影免费观看| 日韩精品无码一区二区| 91女人视频在线观看| 黄色国产一级视频| 天天影视综合| 91成人在线精品视频| 日韩免费电影在线观看| 91精品国产精品| 乱h高h女3p含苞待放| 国产精品久久久久久久牛牛| 网站免费满18成年在线观看| 日韩欧美在线电影| 欧美精品一区二区三区蜜桃视频| 亚洲乱亚洲乱妇| 精品一区二区三区在线观看国产| 男人午夜天堂| 伊人久久大香线蕉| 久久综合久久美利坚合众国| 影音先锋中文字幕一区二区| 国产特黄一级片| 天天骑天天射| **欧美日韩在线观看| 天天骑夜夜操| 91精品国产高清久久久久久久久| 日本视频一区二区不卡| 欧美日韩在线资源| 亚洲爆乳无码精品aaa片蜜桃| 麻豆蜜桃在线| 国产高清免费在线观看| 欧美日韩在线综合| 日韩欧美在线播放视频| 国产精品亚洲一区二区三区在线| 欧洲精品码一区二区三区免费看| 亚洲av成人精品一区二区三区| 韩国av中文字幕| 在线观看成人免费| 精品樱空桃一区二区三区| www.午夜激情| 国产日本在线| 成人少妇影院yyyy| 日韩在线不卡视频| 欧美成人综合| 996这里只有精品| 欧美第一黄色网| 中文字幕网站在线观看| 影音先锋男人资源站在线观看| 亚洲人成欧美中文字幕| 欧美男男freegayvideosroom| 圆产精品久久久久久久久久久| 午夜精品婷婷| 国产在线拍揄自揄拍视频| 亚洲女人被黑人巨大进入| 午夜精品一区二区三| 中文字幕在线亚洲三区| 青草视频在线播放| 狠狠色狠狠色综合日日小说| 国产激情在线看| 亚洲摸摸操操av| 亚洲精选国产| 翔田千里一区二区| 亚洲午夜女主播在线直播| 国产区精品视频| 成人毛片视频在线观看| 高清shemale亚洲人妖| 91精品国产入口在线| 欧美精品一区二区高清在线观看| av网站在线免费观看| 亚洲激情五月| 亚洲国产高清一区二区三区| 久久久久久伊人| 国产无遮挡又黄又爽又色| 亚洲老板91色精品久久| 日韩精品水蜜桃| 福利影院在线看| 五月开心播播网| 800av在线免费观看| 欧美成人国产va精品日本一级| 亚洲va欧美va天堂v国产综合| 2018av在线| 97超碰资源站| 欧美精品与人动性物交免费看| 日韩大片欧美大片| 亚洲欧洲闷骚av少妇影院| 男男激情在线| 最近国语视频在线观看免费播放| 欧美一卡在线观看| 一本色道久久综合狠狠躁篇的优点| 亚洲一二三专区| 国产精品乱码一区二三区小蝌蚪| 亚洲视频天天射| 欧美精品电影在线播放| 亚洲电影第1页| 视频在线观看国产精品| 四虎永久免费观看| 日本xxxxxxx免费视频| 亚洲国产成人在线观看| 国产日韩综合| 黄色国产网站在线播放| 伊人久久大香伊蕉在人线观看热v| 国产黄色成人av| 国产精品中文有码| 精品视频日韩| 国产sm精品调教视频网站| 亚洲色图27p| 一本一道久久a久久综合蜜桃| 国语自产精品视频在线看8查询8| 午夜精品一区二区三区在线观看| 日韩精品中文字幕在线播放| 欧洲午夜精品久久久| 日本一区二区三区国色天香| 日本福利视频| 亚洲av毛片基地| 欧美一区二区免费视频| eeuss性xxxxxx电影| 日日噜噜噜夜夜爽亚洲精品| 91夜夜蜜桃臀一区二区三区| 午夜免费福利网站| 欧美一级日韩不卡播放免费| 国产成人精品免费久久久久| 亚洲男人的天堂在线播放| ckplayer中文字幕| 亚洲黄色免费av| 午夜羞羞视频| 在线电影av不卡网址| 欧美激情在线免费| 国产丝袜一区二区三区| 91蜜桃视频在线观看| 欧美激情精品久久久久久| 欧美1区2区3区| av激情久久| 国产91在线播放精品91| 亚洲一区二区自偷自拍| 午夜精品一区二区三| 欧美巨乳在线观看| 国产一区二区视频在线免费观看| 国产乱码77777777| 国产精品久久久久久影视| 国产精品国产三级国产aⅴ无密码| 91精品国产电影| 日本三级电影网| 日本少妇裸体做爰| 国产福利精品视频| 一区二区三区不卡视频| 欧美亚洲精品日韩| 鲁丝一区二区三区免费| av资源网在线观看| 亚洲天堂一区二区三区| 天堂午夜在线| 可以免费看av的网址| 一区二区欧美在线| 国产精品美女一区二区三区四区| 欧美一区二区视频| 国产二级一片内射视频播放| aaaaaaa大片免费看| 久操视频在线免费观看| 成网站在线观看人免费| 久久精品日产第一区二区三区乱码| 欧美最猛黑人xxxx黑人猛叫黄| 成人动漫网站在线观看| 一日本道久久久精品国产| 国产精品色综合| 成人有码视频在线播放| 久草av在线播放| 国产视频在线一区二区| 国产精品久久麻豆| 色偷偷亚洲男人天堂| 欧美日韩在线视频首页| 亚洲欧洲午夜| 好吊操这里只有精品| 欧美一级播放| 神马午夜在线视频| 欧美巨乳在线观看| av磁力番号网| 日韩av午夜在线观看| 极品少妇一区二区三区| sedog在线观看| 精品亚洲成av人在线观看| 中文天堂在线视频| 日韩高清一二三区| 欧美亚洲高清| 欧美激情一区二区三区蜜桃视频| 日韩系列在线| 一区二区三区视频免费观看| 人人在线97| 精品久久影院| 中文字幕亚洲区| 国产网站免费看| 国产精品一区二区免费不卡| 成人在线激情网| 欧美精品一区二区三区国产精品| 国产精品亚洲综合一区在线观看| 成人小电影网站| 亚洲婷婷丁香| 欧美小视频在线观看| 欧美日韩免费做爰视频| 自拍偷拍亚洲色图欧美| 国产九九精品视频| 国产精品剧情一区二区三区| 天天干夜夜艹| 精品国自产在线观看| 亚洲人高潮女人毛茸茸| 色婷婷久久久综合中文字幕| 9191精品国产综合久久久久久| 97激碰免费视频| 国产在视频一区二区三区吞精| 国产青草视频在线观看| 毛片毛片女人毛片毛片| 欧美性猛交99久久久久99按摩| 亚洲成人精品综合在线| 日本亚洲欧美| 在线免费三级电影网站| 伊人影院综合在线| 在线视频欧美日韩| 色综合一区二区日本韩国亚洲| 亚洲aⅴ日韩av电影在线观看| 丰满肉嫩西川结衣av| 国产麻豆一区二区三区在线观看| 国产一区二区三区视频在线观看| 91极品视频在线观看|