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

Hvilken kolonne skal placeres først i indekset? Højere eller lavere kardinalitet?

MySQL sammensatte indeksopslag skal foregå i den rækkefølge, som kolonnerne er defineret i indekset. Da du ønsker, at MySQL skal være i stand til at skelne mellem poster ved at udføre så få sammenligninger som muligt, vil du med alt andet lige have mest gavn af et sammensat indeks, hvor kolonnerne er ordnet fra højeste til laveste kardinalitet.

Det vil sige, hvis man antager, at sammenligninger i sidste ende skal udføres mod kolonnen med højeste kardinalitet for at diskriminere poster, hvorfor så tvinge sammenligninger til at finde sted først mod kolonnen med laveste kardinalitet, når det i sidste ende kan være unødvendigt?



  1. Kan MySQL INT-typen være ikke-nul NULL

  2. Kan ikke forespørge XML-fil med OPENXML i SQL

  3. Blander USING og ON i Oracle ANSI join

  4. Sådan fortsættes mens loop efter undtagelse rejst i SQL