5.5.1 找到并修复损坏的表

表损坏 corruption:

  • 使用 CHECK TABLE 检查是否发生了表损坏
  • 使用 REPAIR TABLE 命令来修复损坏的表

使用重建表来修复:

  1. ALTER TABLE innodb_tbl ENGINE=INNODB;

5.5.2 更新索引统计信息

MySQL 的查询优化会通过两个 API 来了解存储引擎的索引值的分布信息:

  • records_in_range() 查询指定范围的记录数
  • info() 返回各种类型的数据

MySQL 优化器使用基于成本的模型.

  • ANALYZE TABLE 重新生成统计信息

image.png

查看基数:

image.png

InnoDB 通过抽样的方式来计算统计信息.

5.5.3 减少索引和数据的碎片

B-Tree 需要随机磁盘访问才能定位到叶子页.

数据碎片的类型:

image.png

通过 OPTIMIZE TABLE 来重新整理数据.