Попробуйте следующий запрос:
SELECT s.INDEXED_COL,GROUP_CONCAT(INDEX_NAME) FROM (
SELECT INDEX_NAME,GROUP_CONCAT(CONCAT(TABLE_NAME,'.',COLUMN_NAME) ORDER BY CONCAT(SEQ_IN_INDEX,COLUMN_NAME)) 'INDEXED_COL' FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = 'db?'
GROUP BY INDEX_NAME
)as s GROUP BY INDEXED_COL HAVING COUNT(1)>1
Примечание: Это позволит дифференцировать два составных ключа в соответствии с порядком столбцов
например: IND1 (col1, col2) и IND2 (col2, col1) будут обрабатываться как разные (не повторяющиеся) индексы
U может попробовать это (но это не будет работать для составного индекса):
SELECT DISTINCT
TABLE_NAME,
COLUMN_NAME,COUNT(1),
GROUP_CONCAT(DISTINCT INDEX_NAME)
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = 'db?'
AND INDEX_NAME NOT IN ('PRIMARY')
AND INDEX_NAME NOT IN (SELECT CONSTRAINT_NAME FROM `REFERENTIAL_CONSTRAINTS`)
GROUP BY TABLE_NAME,COLUMN_NAME
HAVING count(1)>1
ORDER BY TABLE_NAME ;