Mysql
 sql >> Database >  >> RDS >> Mysql

Due indici duplicati con le stesse colonne

Sì, può avere un effetto.

Ovviamente i due indici occupano spazio aggiuntivo su disco e anche in memoria se vengono utilizzati.

Ma fanno anche in modo che Query Optimizer esegua più lavoro per calcolare il vantaggio di ciascun indice durante ogni SELECT. Più indici hai, più casi deve confrontare. Quindi conviene eliminare gli indici veramente ridondanti.

Come altri hanno anche notato, gli indici vengono aggiornati durante le operazioni INSERT/UPDATE/DELETE, quindi più indici hai, maggiore è il sovraccarico rappresentato. Gli indici che vengono utilizzati molto giustificano il proprio sovraccarico, ma gli indici duplicati richiedono un sovraccarico maggiore senza alcun vantaggio aggiuntivo da corrispondere.

Se sei interessato, Percona Toolkit ha uno strumento pt-duplicate-key-checker che cerca in tutte le tue tabelle casi come questo.