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

Wann aktualisiert MySQL die Indizes

Indexaktualisierungen sind zweifach.

Der erste Teil ist das Einfügen/Aktualisieren/Löschen des Eintrags in/aus dem Index. Der Index wird aktualisiert, sobald ein Datensatz geändert wird, und dieser Prozess blockiert die Abfrage bis zum Abschluss.

Dies ermöglicht ein schnelleres Abrufen von Datensätzen basierend auf einer a-Bedingung in einer indizierten Spalte, dem am besten verstandenen Zweck eines Indexes.

Der zweite Teil ist die Aktualisierung der Indexstatistik. Auf diese Weise kann der Optimierer feststellen, ob es sich für eine bestimmte Abfrage überhaupt lohnt, den Index zu verwenden. Stellen Sie sich eine Abfrage wie SELECT * FROM users WHERE disabled =0 vor . Gehen Sie davon aus, dass die meisten Benutzer tatsächlich aktiv sind. Wenn die Indexstatistik aktuell ist, erkennt der Optimierer, dass die meisten Datensätze aus der Tabelle von der Abfrage zurückgegeben werden und die Tabelle fast vollständig gescannt werden muss. Es wird wahrscheinlich entscheiden, den Index nicht zu verwenden und die Tabelle sofort zu scannen.

Dieses Update findet nicht automatisch außer in ganz bestimmten Fällen statt Situationen . Diese Statistiken sollten regelmäßig manuell mit einem TABELLE ANALYSE [table_name]