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

Kann die Indexerstellung vorhandene Indizes verwenden?

MySQL erstellt normalerweise die gesamte Tabelle neu, wenn Sie einen Index hinzufügen, sodass alle vorhandenen ebenfalls neu erstellt werden. Dies kann langsam sein.

Die einzige Ausnahme ist das Hinzufügen eines Indexes mit dem InnoDB-Plug-In, was nicht der Fall ist.

Soweit ich weiß, wird beim Erstellen eines Indexes immer ein vollständiger Tabellenscan durchgeführt. Es KÖNNTE jedoch einen Indexscan durchführen, wenn Sie einen Index hinzufügen, der dieselben (oder eine Teilmenge) von Spalten wie ein anderer Index enthält. Solche Indizes sind normalerweise nur sinnvoll, wenn die Spalten in einer anderen Reihenfolge sind.

Je mehr Indizes Sie haben, desto langsamer wird es bei Verwendung von Stock-Mysql sein, einen neuen zu erstellen, da es auch vorhandene Indizes neu aufbaut.

Mit dem Plugin macht es glaube ich keinen Unterschied.

Wie auch immer, wenn Sie vorhaben, mehrere Indizes hinzuzufügen, sollten Sie dies auf einmal und nicht einzeln tun.