Optimize InnoDB Table遇到的问题

近日在两个物品记录表中分别制造了10亿的数据(不要问我什么业务会有这么多数据^_^),每个表分别有9个字段,基本是int。之前估算过表的大小,但没有计算磁盘占用情况,这次测试主要就是想了解下磁盘占用情况。


/data总容量200GB,10亿数据很快就写满了,于是又开始删数据,但发现InnoDB存储引擎在删除数据后并不自动释放磁盘空间。在老叶的博客上我们学习到可以通过optimize table语法或alter table TableName engine=innodb来实现空间的释放。


我的MySQL版本是5.1.38,在optimize执行了很久之后系统提示

Table does not support optimize, doing recreate + analyze instead

……好无语啊,消耗了时间不说,结果还没有执行成功


在网上搜索了下看到MySQL管网对optimize语法有详细的说明,参见http://dev.mysql.com/doc/refman/5.1/en/optimize-table.html

其中关键在这里

mysql> OPTIMIZE TABLE foo;

 
 

You can makeOPTIMIZE TABLE work on other storage engines by starting mysqld with the --skip-new or --safe-mode option. In this case, OPTIMIZE TABLE is just mapped to ALTER TABLE.

上面是说要求我们在启动的时候指定--skip-new或者--safe-mode选项来支持optimize功能


我就是没有指定这些选项遇到了上面的问题,按照上面的要求重新启动后就好了^_^

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9183234/viewspace-1028031/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9183234/viewspace-1028031/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值