tablespace - MySQL從5.5升級(jí)到5.7后innodb_file_per_table默認(rèn)開(kāi)啟問(wèn)題
問(wèn)題描述
最近將數(shù)據(jù)庫(kù)從庫(kù)從5.5升級(jí)到5.7,發(fā)現(xiàn)儲(chǔ)存MySQL磁盤空間一下子占用變大了很多,排查了一下發(fā)現(xiàn)是升級(jí)后MySQL的系統(tǒng)表空間(ibdata1)很大[原本就很大],單個(gè)innodb表的表空間也變得很大[升級(jí)后變大],正常情況下應(yīng)該只有一方會(huì)很大(系統(tǒng)的MyISAM表不多)
具體情況如下:升級(jí)前,mysql數(shù)據(jù)庫(kù)5.5,innodb_file_per_table使用默認(rèn)配置,即是關(guān)閉的,innodb的表和索引都存儲(chǔ)在一起(ibdata1文件很大);升級(jí)到5.7時(shí),innodb_file_per_table仍使用默認(rèn)配置,但是默認(rèn)是開(kāi)啟的,升級(jí)時(shí)使用mysql_upgrade后,每個(gè)表使用了獨(dú)立的表空間,即每個(gè)數(shù)據(jù)庫(kù)文件夾下的表空間文件很大,但是原本的系統(tǒng)表空間ibdata1并沒(méi)有對(duì)應(yīng)的變小。
查詢手冊(cè)發(fā)現(xiàn):在mysql5.5的時(shí)候innodb_file_per_table配置是默認(rèn)關(guān)閉的,但是數(shù)據(jù)庫(kù)升級(jí)到5.7的時(shí)候,innodb_file_per_table配置默認(rèn)開(kāi)啟了(其實(shí)在mysql5.6.6的時(shí)候就默認(rèn)開(kāi)啟了),官網(wǎng)說(shuō)明:http://dev.mysql.com/doc/refm...
請(qǐng)問(wèn)有沒(méi)有方法在不重新導(dǎo)入數(shù)據(jù)的情況下(重新導(dǎo)入耗時(shí)太長(zhǎng)),使原本的系統(tǒng)表空間ibdata1文件變小。
問(wèn)題解答
回答1:首先需要明確你要做什么
1、MySQL 從5.5 升級(jí)到 5.72、不想重新導(dǎo)數(shù)據(jù),減少ibdata1空間
如果你是生產(chǎn)環(huán)境的數(shù)據(jù),建議你做好數(shù)據(jù)庫(kù)升級(jí)前的兼容性工作,充分的評(píng)估并找到不兼容或問(wèn)題點(diǎn),并解決。生產(chǎn)環(huán)境進(jìn)行版本升級(jí)建議做數(shù)據(jù)庫(kù)的導(dǎo)入導(dǎo)出操作,不建議原地升級(jí)。
如果是測(cè)試環(huán)境你可以隨意折騰,甚至是執(zhí)行完mysql_upgrade后 關(guān)閉MySQL,刪除ibdata1 文件,重啟后看看效果。
或者使用一些表整理命令或者嘗試修改表存儲(chǔ)引擎的方式整理一些表看看有沒(méi)有效果。
相關(guān)文章:
1. javascript - sublime快鍵鍵問(wèn)題2. javascript - immutable配合react提升性能?3. css - 寫(xiě)頁(yè)面遇到個(gè)布局問(wèn)題,求大佬們幫解答,在線等,急!~4. javascript - nodejs關(guān)于進(jìn)程間發(fā)送句柄的一點(diǎn)疑問(wèn)5. Apache 已經(jīng)把網(wǎng)站根目錄的改為allow from all了,但是服務(wù)器還是不能訪問(wèn)?6. 實(shí)現(xiàn)bing搜索工具urlAPI提交7. 配置Apache時(shí),添加對(duì)PHP的支持時(shí)語(yǔ)法錯(cuò)誤8. vue.js - Vue 如何像Angular.js watch 一樣監(jiān)聽(tīng)數(shù)據(jù)變化9. javascript - 移動(dòng)端上不能實(shí)現(xiàn)拖拽布局嗎?10. phpstudy8.1支持win11系統(tǒng)嗎?

網(wǎng)公網(wǎng)安備