optimize table出错解决方法
12-30
一个某某库大概360W,为了提高查询效率,做点优化,使用optimize table table.name;出现Table does not support optimize, doing recreate + analyze instead
果断谷歌,查到一段E文。。。
Everytime you do optimize MySQL, by using mysqlcheck -A -o or using ./mysql_optimize from here.
You may see the output
Table does not support optimize, doing recreate + analyze instead.
It is because the table that you are using is InnoDB.
You can optimize the InnoDB tables by using this.
复制代码
代码如下:
ALTER TABLE table.name ENGINE='InnoDB';
This will create a copy of the original table, and drop the original table, and replace to the original place.
Although this is safe, but I suggest you do backup and test first before doing this.
原来如此,大致意思是说innodb的数据库不支持optimize,可以用
ALTER TABLE table.name ENGINE='InnoDB';
该方法会对旧表以复制的方式新建一个新表,然后删除旧表。虽然这个过程是安全的,但是在进行操作时还是先进行备份为好
还有一种方式:
You can make OPTIMIZE 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 toALTER TABLE.
上面是说要求我们在启动的时候指定--skip-new或者--safe-mode选项来支持optimize功能
- • 开机提示"Invalid partition table"怎么解决?
- • 重装win7旗舰版系统后启动时提示invalid partition table的解决方法
- • linux CentOS/redhat 6.5 LVM分区如何使用
- • vps的硬盘扩容后的挂载探索
- • cydia安装及卸载出错解决方法
- • VMware 虚拟机(linux)增加根目录磁盘空间的方法
- • freebsd6.2 nginx+php+mysql+zend系统优化防止ddos攻击
- • linux中挂载新硬盘到目录,并开机自动挂载例子
- • 硬盘分区表损坏的解决方案