Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Zwei doppelte Indizes mit denselben Spalten

Ja, es kann Auswirkungen haben.

Natürlich beanspruchen die beiden Indizes zusätzlichen Speicherplatz auf der Festplatte und auch im Arbeitsspeicher, wenn sie verwendet werden.

Aber sie führen auch dazu, dass der Abfrageoptimierer mehr Arbeit leistet, um den Nutzen jedes Index bei jedem SELECT zu berechnen. Je mehr Indizes Sie haben, desto mehr Fälle müssen verglichen werden. Es lohnt sich also, wirklich redundante Indizes zu eliminieren.

Wie andere ebenfalls angemerkt haben, werden Indizes während INSERT/UPDATE/DELETE-Operationen aktualisiert. Je mehr Indizes Sie haben, desto mehr Overhead bedeutet dies. Indizes, die viel verwendet werden, rechtfertigen ihren eigenen Overhead, aber doppelte Indizes erfordern mehr Overhead ohne zusätzlichen Vorteil.

Wenn Sie interessiert sind, hat Percona Toolkit ein Tool pt-duplicate-key-checker das alle Ihre Tabellen nach solchen Fällen durchsucht.