维护索引和表
使用 show index from 查看索引基数
存储引擎估算索引列有多少个不同的取值,选择合适的索引
减少索引和数据的碎片
行碎片(Row Fragmentation)
数据被存储在多个地方的多个片段中,就算查询只从索引中访问行记录,行碎片也会导致性能下降
行间碎片(Intra-row Fragmentation)
逻辑上顺序的页,在磁盘上不是顺序存储,对全表扫描和聚簇索引扫描操作有很大影响
剩余空间碎片(Free Space Fragmentation)
数据页有大量的空余空间,导致服务器读取大量不需要的数据,从而造成浪费
InnoDB不会出现短小的行碎片,InnoDB会移动短小的行重写到一个片段中
通过执行 optimize table或者导出导入方式重新整理数据
对于开启了 expand_fast_index_creation 参数的Percona Server,重建表会同时消除表和索引的碎片化
对于标准MySQL只会消除表的碎片化,通过删除所有索引重建表可以消除索引的碎片化
论读书
睁开眼,书在面前 闭上眼,书在心里
睁开眼,书在面前 闭上眼,书在心里