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

InnoDB sammensat indekseringsrækkefølge og INSERT ydeevne

(Bemærk:Dette svar præciserer eller er uenigt med nogle af de kommentarer, der allerede er skrevet.)

DELETEs bliver langsommere på grund af sletning af indeksposterne. UPDATEs kan blive langsommere -- det afhænger af, om en indekseret kolonne ændres.

SELECTs , UPDATEs og DELETEs , men ikke INSERTs , skal finde rækken/rækkerne; til dette kan et indeks hjælpe meget.

En INSERT er skadet et ekstra beløb, hvis der er en UNIQUE indeks for at kontrollere.

Sekundære nøgler (i InnoDB), undtagen for UNIQUE nøgler, opdateres (normalt på grund af INSERT). og DELETE , men muligvis på grund af UPDATE ) på en 'forsinket' måde via det, der kaldes "Change Buffer". Dette udsætter faktisk opdatering af indekset, men holder stadig indekset fuldt brugbart.

Intet af dette påvirkes af rækkefølgen af ​​kolonnerne i et indeks. Men hvis et indeks er større, end det kan cache i RAM, kommer "caching" i spil, og I/O kan være involveret eller ikke. Men det er et andet emne.

Generelt fordele fra et indeks for læsning opvejer langt afmatningen for skriveoperationer.



  1. Laravel 5 UnexpectedValueException som svar på forespørgsel på grund af brug af POINT-data

  2. Fjern dubletter på listen over objekter med Python

  3. Kan ikke bruge utf8mb4 tegnsæt med CloudSQL på AppEngine Python

  4. En oversigt over Amazon RDS &Aurora-tilbud til PostgreSQL