sql >> Databasteknik >  >> RDS >> Mysql

När uppdaterar MySQL indexen

Indexuppdateringar är tvåfaldiga.

Den första delen är att infoga/uppdatera/ta bort posten i/från indexet. Indexet uppdateras så snart en post ändras, och denna process blockerar frågan tills den är klar.

Detta möjliggör snabbare hämtning av poster baserat på ett villkor i en indexerad kolumn, det mest välförstådda syftet med ett index.

Den andra delen är att uppdatera statistiken för indexet. Detta gör att optimeraren kan avgöra om det är värt att använda indexet för en given fråga. Föreställ dig en fråga som SELECT * FROM users WHERE disabled =0 . Anta att de flesta användare faktiskt är aktiva. Om indexstatistiken är uppdaterad kommer optimeraren att inse att de flesta poster från tabellen kommer att returneras av frågan, tabellen kommer nästan helt att behöva skannas. Det kommer sannolikt att besluta sig för att inte använda indexet och skanna tabellen direkt.

Denna uppdatering sker inte automatiskt förutom i mycket specifika situationer . Denna statistik bör uppdateras manuellt regelbundet med en code>ANALYSER TABELL [tabellnamn]



  1. Att förstå Postgres radstorlekar

  2. Varför stöds fortfarande inte lagrade procedurer i Rails (3+)?

  3. CLR Strikt säkerhet på SQL Server 2017

  4. Hur man byter namn på en tabellkolumn i Oracle 10g