MySQL管理工具MySQL Utilities — mysqlindexcheck (27)

mysqlindexcheck 工具是用来识别潜在的冗余表索引的。读取一个或多个表的索引,识别出重复的和潜在冗余的索引。

如果只指定数据库名,那么检查数据库中的所有表。如果要检测特定的某个表索引,以这个格式定义表名db.table。

除了这些库的表mysql, INFORMATION_SCHEMA, performance_schema,可以扫描所有其他库。

根据不同的索引类型,适用于以下规则进行索引比较指定为idx_aidx_b):

  • BTREE   当且仅当idx_b中的第一个n列也出现在idx_a,那么idx_b是idx_a的重复的。顺序和唯一的。
  • HASH    当且仅当它们包含相同的列相同一顺序,那么idx_a和idx_b是重复的。唯一的。
  • SPATIAL  当且仅当它们包含相同的列,那么idx_a和idx_b是重复的。
  • FULLTEXT  当且仅当idx_b包含的所有列,也idx_a也包含,那么idx_b与idx_a是冗余的。顺序。

如果要看到DROP语句来删除冗余索引,可以指定 –show-drops 选项。检查现有的索引,使用–verbose 来打印出与CREATE INDEX (或者 ALTER TABLE) 等效。

为了显示每个表最好或最坏的主键索引,使用–best 或 –worst选项。

格式

  • grid (default)
  • csv
  • tab
  • sql
  • vertical

不解释了,前面有,不清楚看前面的内容。

注意:–best 和 –worst 列表选项不显示SQL 语句。

选项

实例

权限

需要对mysql数据库和需要检测的库(表)的SELECT权限。