1.將拷貝的數據文件? ?"qqq.idb"放在自己的數據庫中. 一般存放在? mysql/?data/?databasename 下
2.?"qqq.idb" 改個名字-->"qqq--.idb", 主要是避免沖突!
3.執行 create table qqq(...) 語句,此時除了會生成一個? qqq.frm, 文件,還會新生成一個qqq.idb文件
4.執行?ALTER TABLE qqq DISCARD TABLESPACE; 會自動刪除 新生成的qqq.idb 文件
5. 改回 "qqq--.idb"文件名為?"qqq.idb"
6.ALTER TABLE qqq IMPORT TABLESPACE; SHOW WARNINGS;
--結束,OK。
如果import tablespace 的時候,報錯 ibd文件與表的 ROW_TYPE_COMPACT 不兼容,則需要在建表語句最后 加上 ROW_FORMAT=COMPACT保持一致!
?
?
mysql ibd 文件過大問題
公司的數據庫掛了查了下 ,每個表都有自己獨立的表空間,有一張表的ibd 文件有好幾G了。然后想要釋放它。
?
解決方案:
第一種,刪除表,然后重新建。drop table 操作自動回收表空間
第二種,alter table tablename engin=innodb 。搞定
---------------------
作者:wang603603
來源:CSDN
原文:https://blog.csdn.net/wang603603/article/details/80463285
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!