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

MySQL:Forskel mellem `... ADD INDEX(a); ... TILFØJ INDEKS(b);` og `... TILFØJ INDEKS(a,b);`?

Det kombinerede INDEX er en kombination af tasterne "a" og "b". Det forbedrer adgangen betydeligt, hvis enten "a" eller "a" OG "b" er en del af søgeudtrykket.

Dette indeks er ikke nyttigt, hvis du kun angiver "b" i dine SQL-sætninger.

Derfor kan det være nyttigt at angive to forskellige indekser - men de bør bruge forskellige navne.

Afhængigt af adgangsmønstrene vil jeg anbefale et indeks på "a" og "b" og et ekstra indeks på "b", hvis dette matcher dine behov.

Vær opmærksom på, at ethvert yderligere indeks gør databasen langsommere på alle operationer, der ændrer data. Nogle gange er det bedre at holde nogle indeks væk. Det er normalt et godt råd IKKE at BRUGE indekser på nogen kolonne i en tabel.

Endnu et tip:For at afgøre, om et INDEX(a,b) eller INDEX(b,a) skal bruges, skal du kigge på fordelingen af ​​dine data. Indsæt værdierne med den højere spredning af forskellige værdier i den første kolonne af indekset for at øge selektiviteten af ​​det indeks. Denne værdi er normalt baseret på kvaliteten af ​​det første indekselement.

For eksempel bør et indeks på kolonnerne NAVN og KØN oprettes som INDEKS(NAVN, KØN), fordi der er mange flere navne, der forskellige køn(er?).



  1. De første tre grupper med de højeste karakterer skal have specifikke point 5,3, 1

  2. MySQL grupperer resultater efter tidsperioder

  3. Match lignende/variationer af ord/suffikser i MySQL

  4. Sådan opdaterer du rækker af to tabeller, der har begrænsninger for fremmednøgle