sql >> Database >  >> RDS >> Mysql

Wat zijn de grootste voordelen van het gebruik van INDEXES in mysql?

Kort antwoord:
Indexen versnellen SELECT 's en vertraag INSERT 's.

Meestal is het beter om indexen te hebben, omdat ze select . sneller maken meer dan dat ze vertragen insert .

Op een UPDATE de index kan dingen versnellen als een geïndexeerd veld wordt gebruikt in de WHERE clausule en vertraag dingen als je update een van de geïndexeerde velden.

Hoe weet u wanneer u een index moet gebruiken

EXPLAIN toevoegen voor je SELECT statement.
Vind ik leuk:

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

Zal u laten zien hoeveel werk MySQL zal moeten doen op elk van de niet-geïndexeerde velden.
Gebruiken aan die informatie kunt u beslissen of het de moeite waard is om indexen toe te voegen of niet.

Explain kan je ook vertellen of het beter is om te laten vallen en te indexeren

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

Als er heel weinig rijen zijn geselecteerd, of MySQL heeft besloten om negeren de index (dat doet hij van tijd tot tijd) dan kun je net zo goed de index laten vallen, omdat het is uw insert vertragen s maar uw select niet versnellen 's.

Aan de andere kant kan het ook zijn dat je select-statement niet slim genoeg is.
(Sorry voor de complexiteit in het antwoord, ik probeerde het simpel te houden, maar faalde).

Link:
MySQL-indexen - wat zijn de best practices?



  1. Hoe een identiteitskolom aan tabel toe te voegen door TSQL en GUI in SQL Server - SQL Server / T-SQL-zelfstudie, deel 40

  2. FOUT 1452:Kan een onderliggende rij niet toevoegen of bijwerken:een beperking van een externe sleutel mislukt

  3. group_concat MYSQL nieuwe regel

  4. Basis SQL-query's