Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Welche Spalte soll zuerst in den Index gesetzt werden? Höhere oder niedrigere Kardinalität?

Die Suche nach zusammengesetzten MySQL-Indizes muss in der Reihenfolge erfolgen, in der die Spalten im Index definiert sind. Da MySQL in der Lage sein soll, zwischen Datensätzen zu unterscheiden, indem es so wenig Vergleiche wie möglich durchführt, werden Sie bei sonst gleichen Bedingungen am meisten von einem zusammengesetzten Index profitieren, in dem die Spalten von der höchsten zur niedrigsten Kardinalität geordnet sind.

Angenommen, Vergleiche müssen schließlich mit der Spalte mit der höchsten Kardinalität durchgeführt werden, um Datensätze zu unterscheiden, warum dann Vergleiche erzwingen, die zuerst mit der Spalte mit der niedrigsten Kardinalität durchgeführt werden, wenn dies letztendlich unnötig sein kann?