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

Hvad er de største fordele ved at bruge INDEXES i mysql?

Kort svar:
Indekser fremskynder SELECT 's og sænk farten INSERT 's.

Normalt er det bedre at have indekser, fordi de fremskynder select mere end de bremser insert .

På en UPDATE indekset kan fremskynde tingene langt op hvis et indekseret felt bruges i WHERE klausul og sænke tingene, hvis du update et af de indekserede felter.

Hvordan ved du, hvornår du skal bruge et indeks

Tilføj EXPLAIN foran din SELECT erklæring.
Sådan:

EXPLAIN SELECT * FROM table1 
WHERE unindexfield1 > unindexedfield2 
ORDER BY unindexedfield3

Vil vise dig, hvor meget arbejde MySQL skal udføre på hvert af de uindekserede felter.
Brug af den info kan du bestemme, om det er umagen værd at tilføje indekser eller ej.

Explain kan også fortælle dig, om det er bedre at droppe og indeksere

EXPLAIN SELECT * FROM table1 
WHERE indexedfield1 > indexedfield2 
ORDER BY indexedfield3

Hvis meget få rækker er valgt, eller MySQL besluttede at ignorere indekset (det gør det fra tid til anden) så kan du lige så godt droppe indekset, for det er bremse dit insert s, men ikke fremskynde dit select s.

Så igen kan det også være, at dit udvalgte udsagn ikke er klogt nok.
(Beklager kompleksiteten i svaret, jeg prøvede at holde det enkelt, men det lykkedes ikke).

Link:
MySQL-indekser - hvad er bedste praksis?



  1. Sådan vælger du et kolonnenavn med et mellemrum i MySQL

  2. Sådan indstilles forbindelsesstreng med Entity Framework

  3. få rå decimalværdi fra mysqldb-forespørgsel

  4. Gemmer specialtegn i MySQL-databasen