有二种方法

1. 借助pt-duplicate-key-checker,这是percona toolkit中的一个小工具


pt-duplicate-key-checker --host=localhost --user=xxx--password=xxx--database=xxx

以报表形式显示有重复索引的表,以及给出建议的删除语句

2. 利用information_schema.STATISTICS 数据字典

SELECT table_name,column_name,COUNT(1) ct
FROM information_schema.`STATISTICS`
WHERE seq_in_index=1
AND table_schema='test'
GROUP BY table_name,column_name
HAVING ct >=2;

其中 ct 位该索引列出现的次数!


利用这二种方法中的其中一种,逐个表的把重复索引列删除!