在很多的linux生产服务器里很多时候用数据库是mysql,在数据库里算是轻量级的数据库,但是长期以来的使用往往会出现一些问题,一般的状况是无法读取表,此时我们就要来修复表、优化表,减小磁盘使用量,以方便数据库的备份。
在用root用户进入mysql中,进入表所在的库
REPAIR TABLE `table_name` 修复表
OPTIMIZE TABLE `table_name` 优化表
REPAIR TABLE 的作用是用于修复表,而OPTIMIZE TABLE 用于回收闲置的数据库空间,当表上的数据行被删除时,所占据的磁盘空间并没有立即被回收,使用了OPTIMIZE TABLE命令后这些空间将被回收,并且对磁盘上的数据行进行重排。其中OPTIMIZE TABLE在很多时候不一定要运行,只要在批量删除后,或者做一个定期,比如一周一次或者一个月一次这样对表进行优化,以减小表数据占据磁盘空间。当然在修复的过程中还要注意mysql表文件table_name.frm的文件属性,因为有的时候在编译版的mysql没有init.d中的启动脚本时,都是用mysql下bin目录下的mysqld_safe工具启动的,有的时候如果没有指定启动用户或启动的用户不是mysql软件所用的用户启动,mysql的表文件都会有问题,会出现无法读取文件等等一系列的问题,如此,在有的时候我们还要用chown修改mysql表文件的权限以实现修复。