MySQL查询冗余索引

MySQL大约 567 字

索引冗余sql

SELECT a.TABLE_SCHEMA, a.TABLE_NAME, a.COLUMN_NAME, 
a.INDEX_NAME AS 'index1', b.INDEX_NAME AS 'index2'
FROM information_schema.STATISTICS a 
JOIN information_schema.STATISTICS b 
ON a.TABLE_SCHEMA = b.TABLE_SCHEMA    
AND a.TABLE_NAME = b.TABLE_NAME 
AND a.SEQ_IN_INDEX = b.SEQ_IN_INDEX   
AND a.COLUMN_NAME = b.COLUMN_NAME 
WHERE a.SEQ_IN_INDEX = 1 AND a.INDEX_NAME <> b.INDEX_NAME

冗余索引清理规则

  • 第一个索引是第二个索引的左前缀索引, 删除第一个索引
  • 有主键, 用不到唯一索引, 删除唯一索引
  • 有主键, 用不到普通索引, 删除普通索引
  • 有唯一索引, 用不到普通索引, 删除普通索引
  • 有联合主键索引, 用不到普通组合索引, 删除普通组合索引
  • 索引重复, 删除其中一个索引
  • 普通索引默认以主键索引做后缀, 重建普通索引
阅读 259 · 发布于 2019-04-07

————        END        ————

扫描下方二维码关注公众号和小程序↓↓↓

昵称:
随便看看换一批