匿名用户MySQL ibdata1文件占用1.7T,实际数据才不到30G,除了dump数据,重建在导数据方法,有没有其他更好的方案?
MySQL ibdata1文件占用1.7T,实际数据才不到30G,除了dump数据,重建在导数据方法,有没有其他更好的方案?
我来答
添加附件
收藏
分享
问题补充
4条回答
默认
最新
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏
匿名用户MySQL ibdata1文件占用1.7T,实际数据才不到30G,除了dump数据,重建在导数据方法,有没有其他更好的方案?
更好的貌似没有,看过另一种解决方法,但貌似并不是更好的
把数据库的表引擎为InnoDB 的数据表转为MyIsam 后,删除ibdata1,修改成独立的表空间,再把改成MyIsam引擎的表改为InnoDB,这个就要衡量那种方法的时间耗时最短,两者取其优。数据的表和库很多的通常不建议这么做,耗时间。
评论
有用 130g的数据,dump就是最好的方法,以数据库为整体操作,风险最小
评论
有用 1不知道你用的什么版本的mysql哈,不知道你是不是独立表空间,你可以试下先找到哪些表的碎片比较大:
select table_schema,table_name,data_length/1024/1024/1024,index_length/1024/1024/1024,data_free/1024/1024/1024 from tables order by data_free;
看那个data_free比较大的,说明由于dml导致的空洞太大,可以尝试着整理下表。
optimize table;或者重建表 create table as select * from b;
评论
有用 1
墨值悬赏