mysql表收缩时从库也收缩么_如何在MySQL中收缩/清除ibdata1文件

bc65e9b7e133f3e550ee881b981d46d3.png

手掌心

这ibdata1不是缩小是一个特别恼人的MySQL功能。该ibdata1文件实际上不能缩小,除非你删除所有数据库,删除文件并重新加载转储。但您可以配置MySQL,以便将每个表(包括其索引)存储为单独的文件。这样ibdata1就不会变得那么大。根据Bill Karwin的评论,默认情况下启用MySQL版本5.6.6。不久前我做到了这一点。但是,要将服务器设置为为每个表使用单独的文件,您需要更改my.cnf以启用此功能:[mysqld]innodb_file_per_table=1http://dev.mysql.com/doc/refman/5.5/en/innodb-multiple-tablespaces.html由于你想从ibdata1你那里收回空间,你实际上必须删除该文件:做mysqldump的所有数据库,过程,触发器等,除了mysql和performance_schema数据库删除除上述2个数据库之外的所有数据库停止mysql删除ibdata1和ib_log文件启动mysql从转储恢复当你在步骤5中启动MySQL ibdata1和ib_log文件将被重新创建。现在你适合去。创建新数据库进行分析时,表将位于单独的ibd*文件中,而不是位于ibdata1。由于您通常不久后ibd*删除数据库,文件将被删除。http://dev.mysql.com/doc/refman/5.1/en/drop-database.html您可能已经看到了这个:http://bugs.mysql.com/bug.php?id = 1341通过使用该命令ALTER TABLE ENGINE=innodb,OPTIMIZE TABLE 可以从ibdata1中提取数据和索引页面以分离文件。但是,除非您执行上述步骤,否则ibdata1不会缩小。关于information_schema,这是不必要的也不可能下降。它实际上只是一堆只读视图,而不是表。并且没有与它们相关联的文件,甚至也不是数据库目录。在informations_schema使用内存数据库引擎和被丢弃并在mysqld的停止/重启再生。请参阅https://dev.mysql.com/doc/refman/5.7/en/information-schema.html。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值