日期:2014-05-16  浏览次数:20837 次

mysql optimize table
由于 某个 千万级别的表,要分表,分表出来后,将原表里的数据会删除一部分,为了释放空间,每次delete 后 会 optimize table ,然后这样出现这种提示

error optimize table the table '#sql-4bb_1cde9c' is full

要怎么处理。表类型是innodb

------解决方案--------------------
1 百分之99的情况都不用分表
2 optimize table并不能释放空间 只有导出再重建表导入 可以释放空间
3 临时表大小需要调整 max_heap_table_size和tmp_table_size调大
------解决方案--------------------
如果要减小体积:
1. 用mysqldump等工具导出数据
2. 停止 mysqld
3. 删除ibdata*, ib_logfile* 文件
4. 重新启动 mysqld(这时mysqld就会自动创建 idbdata*, ib_logfile* 文件)
5. 将到出来的数据导回去,体积才会减小。 

------解决方案--------------------
你的磁盘空间还有多少?