分析表

MySQL的优化器(优化组件)在SQL语句的优化,我们需要收集一些相关的信息,包括基数(可译为一个散列,这表明一定程度上)的列包含许多不同的值对应的指标:如果基数小于哈希数据的真实程度,那么基本破坏指数。
我们可以使用显示索引语句来查看索引散列的程度:

显示玩家的索引;

表key_name column_name基数
类似
玩家的主要playerno 14

因为玩家不同playerno的数量远远超过了14,该指数基本上是无效的。
下面我们使用分析表语句来修复索引:

分析表玩家;
显示玩家的索引;
结果是:
表key_name column_name基数
类似
玩家的主要playerno 1000

此时索引已经修复,查询效率大大提高。

应该指出的是,如果binlog打开,分析表的结果也将被写进binlog。我们可以在分析和表格之间添加关键的地方来取消写作。

校验表

数据在传输过程中可能发生变化,或可能因其他原因而损坏。为了确保数据一致性,我们可以计算校验和(校验值)。
一个表使用MyISAM引擎将存储的校验和,称为现场校验,当校验和数据的变化,相应地改变。
当执行校验表,您可以指定选项的快捷或末端延伸。快速显示存储的校验和值返回,而将重新计算校验和。如果没有指定选项,则默认使用扩展名。

优化表

经常更新的数据需要整理磁盘,所以数据库和优化表的语句是有效的MyISAM和InnoDB类型的表。
如果定期更新表,则应定期运行优化表语句以确保效率。
为优化分析表,表也可以使用当地取消写作binlog。

检查表

数据库可能经常遇到错误,例如,当数据写入磁盘时,有一个错误,或者索引没有同步更新,或者数据库没有关闭,MySQL停止。
在这种情况下,数据可能是错误的:
表的错误密钥文件。试着修理它。
此时,我们可以使用检查表语句检查表及其相应索引。
例如,我们运行
检查球员;

其结果是
表msg_type msg_text OP
= =
tennis.players检查状态好

MySQL保存表最后一次检查的时间,每次运行检查表时,信息都被存储。

实施
选择table_name,check_time
从information_schema.tables
在table_name = 'players
和table_schema = 'tennis;

其结果是

table_name check_time
在
玩家2006-08-21 16:44:25

复选表还可以指定其他选项:
升级:它用于测试MySQL早期版本中建立的表是否与当前版本兼容。
快速:检查链接最快的方法是检查链接是否正确。如果您没有任何问题,可以使用此选项。
快速:只检查表是否正常关闭,如果断电后没有严重问题,可以使用此选项。
更改:只检查上次检查时间后更新的数据。
中介:默认选项检查索引文件和数据文件之间的链接正确性。
最慢的选择是全面检查。

修表

为修表,只有MyISAM表类型和档案是有效的。
此语句还可以指定选项:
快速:最快的选项,只修复索引树。
扩展:最慢的选项,您需要按行重建索引行。
use_frm:使用此选项只有当MYI文件丢失,而整个指数全面重建。

为分析表,修表也可以使用当地取消写作binlog。