in MySQL Wenn ich einen eindeutigen Schlüssel für zwei Spalten erstelle, sage
EINZIGARTIGER SCHLÜSSEL my_key
( column1
, column2
)
ist es notwendig, einen weiteren Schlüssel auf column1
zu erstellen? Mein Ziel ist es, column1 und column2 eindeutig zu machen, und ich werde viele selects tun, die von column1 kodiert werden.
Nein, dies ist nicht notwendig, da ein Index für (Spalte1, Spalte2) anstelle eines Index für Spalte1 allein verwendet werden kann.
Vielleicht möchten Sie einen neuen Index nur für Spalte zwei erstellen, da der Index (Spalte1, Spalte2) nicht gut ist, wenn nur nach (Spalte2) gesucht wird.
Nein, Ihr my_key
-Index kümmert sich um alle Anfragen zu column1
oder den Bedingungen zu column1
AND column2
. Wenn Sie jedoch nur Abfragen für column2
durchführen, sollten Sie einen zusätzlichen Index für column2
hinzufügen, um eine effiziente Abfrage durchführen zu können.
Außerdem, wenn sowohl column1
als auch column2
eindeutig sind, sollten Sie in Betracht ziehen, etwas wie
Dies stellt sicher, dass sowohl column1
als auch column2
eindeutig sind, und jede Abfrage, die nur column1
und column2
auswählt, kann mit nur-Index-Zugriff abgerufen werden.
Ein UNIQUE-Index ist ein btree-index . Dieser Index ist sortiert, weshalb Sie für die erste Spalte keinen zweiten Index benötigen. Die Sortierreihenfolge der Kombination funktioniert auch nur für die erste Spalte, aber nicht nur für die zweite Spalte.
Tags und Links mysql