暂无图片
MySQL ibdata1文件占用1.7T,实际数据才不到30G,除了dump数据,重建在导数据方法,有没有其他更好的方案?
我来答
分享
暂无图片 匿名用户
MySQL ibdata1文件占用1.7T,实际数据才不到30G,除了dump数据,重建在导数据方法,有没有其他更好的方案?

MySQL ibdata1文件占用1.7T,实际数据才不到30G,除了dump数据,重建在导数据方法,有没有其他更好的方案?

我来答
添加附件
收藏
分享
问题补充
4条回答
默认
最新
刘贵宾

更好的貌似没有,看过另一种解决方法,但貌似并不是更好的


把数据库的表引擎为InnoDB 的数据表转为MyIsam 后,删除ibdata1,修改成独立的表空间,再把改成MyIsam引擎的表改为InnoDB,这个就要衡量那种方法的时间耗时最短,两者取其优。数据的表和库很多的通常不建议这么做,耗时间。

暂无图片 评论
暂无图片 有用 1
打赏 0
哇哈哈

30g的数据,dump就是最好的方法,以数据库为整体操作,风险最小

暂无图片 评论
暂无图片 有用 1
打赏 0
李宏达

dump数据就是最好的方法

暂无图片 评论
暂无图片 有用 0
打赏 0
张sir

不知道你用的什么版本的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
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
Druid PS Cache开启影响性能
回答 3
已采纳
缓存本质上是空间换取时间。当占用大量空间但缓存命中率低且命中若没有收益,那么就不推荐使用缓存了。mysql的PSCache是Connection级别的,当相同的sql被不同的Connection执行时
本地查mysql密码怎么查?
回答 1
已采纳
加密的不方便查。5.65.7还是可以selectpassword(‘密码’)对比一下
如何跟踪监控mysql从库上面的应用语句的执行过程,计划等信息
回答 3
此应用非彼应用,apply。求slavesqlthreadapply的执行效率有没办法进行跟踪trace
mysql如何实现oracle的instr功能,可以指定开始检索的位置?
回答 2
mysql支持instr函数,和oracle上的instr用法一样
关闭mysql的binlog,这时redolog是一阶段还是仍走两阶段?
回答 1
等于你没开归档。开了binlog,还要有几个参数结合才能说。现在关了,等于你没开归档。什么都不用谈了。
MySQL的域完整性通过哪些方法实现?
回答 2
已采纳
域完整性(DomainIntegrity)也称为列完整性。域完整性是指给限定列输入时的有效性限制,它反映了特定域(也就是特定列)的规则。强制域完整性可以通过以下方法实现:1)数据类型2)检查约束(CH
换成int 自动变成int(11),下次导出导入还是报这个错误
回答 2
int括号的长度和这个没关系,就像前面一个同学说的,就是补0的。int是存21亿左右的数据
遇到一个问题,请大神们解答一下:用innobackupex备份mysql时,总是提示,我的数据库已经重新装过了,还是这样报,新数据库:show engine innodb status
回答 2
没看到报错,仅仅是警告。后面日志是什么?
MySQL innodb在高并发下insert会产生死锁,有什么解决方法?
回答 1
已采纳
主要是控制一下写入顺序。死锁一般是A事务操作12  B事务操作 2  1.所以大家只要采用相同的顺序就可以避免死锁。
explain analyze delete 后出现not executable by iterator executor 提示,是什么意思?
回答 2
它表示查询计划无法通过迭代执行器来执行。这通常发生在以下情况下:查询计划使用了一些不支持迭代执行器的操作符:有些操作符可能无法被迭代执行器处理,例如某些特定的聚合函数、子查询类型等。因此,如果查询计划