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

Impliziert ein 'eindeutiges' Spaltenfeld einen Index mit MySQL, und wenn ja, warum?

Ja. Es ist jedoch nicht unbedingt „automatisch“, es ist implizit. UNIQUE ist Typ des Index, also ist diese Spalte natürlich indiziert.

Weil es für MySQL dumm wäre, bei jedem INSERT einen vollständigen Tabellenscan durchzuführen /UPDATE um die Eindeutigkeitsbeschränkung aufrechtzuerhalten.

Bearbeiten :

Warum sollte ein Programmierer die grundlegende Datenintegrität außerhalb der Datenspeicherschicht manuell durchsetzen wollen? Ich verstehe, worauf Sie damit hinauswollen, aber Tatsache ist, dass ein Index unmöglich schaden kann alles (es braucht nur etwas mehr Platz) - also gibt es wirklich keine zu berücksichtigende Entscheidung.