深入理解重建索引
地址:http://www.cnblogs.com/Alight/p/4601003.html
1、检查是否需要重建索引:
check table 表名;
如果status是OK,那么不用重建索引。否则需要重建
2、mysql重建索引:
repair table 表名
3、案例
mysql 版本:5.5.28
客户服务器托管的机房一直都有突然停电的问题,导致数据表损坏,目前来看没法彻底来解决这个问题
原用的 MyISAM 引擎,因为有好几百个表,就写了个脚本,在恢复供电之后来 check table 并 repair 损坏的 table 。检查速度还算可以,而且客户那边也可以自己在线操作!
后新加了一些功能使用的 InnoDB 引擎,可在 repair table 时候出现
The storage engine for the table doesn't support repair
如何才能快速的 check 损坏的 InnoDB 引擎表,并快速修复数据
innodb要比myisam健壮很多 而且有自我修复的能力
但是一旦innodb的数据文件损坏 只能找备份恢复
innodb 从理论上文件因停电损坏的机率很小。它是先写LOG然后写数据。