Obwohl ich verstehe, dass es sehr praktisch ist, einen Index auf eine eindeutige Spalte zu haben - um einfach und effizient auf Wert Kollision zu überprüfen, sollte ich es dem Programmierer überlassen zu bestimmen, ob eine eindeutige Feldspalte einen Index oder haben soll nicht, in Bezug auf die Größe vs Geschwindigkeit Optimierung.MySQL: Bedeutet ein 'eindeutiges' Spaltenfeld einen Index, und wenn ja, warum?
Soweit ich verstehe, indiziert MySQL automatisch eine Tabellenspalte, die als eindeutig angegeben ist. Ist es so?
Gibt es einen Grund, warum MySQL scheinbar keine eindeutigen Spalten OHNE Indizes haben kann? Ja, jeder Werteinfügung/Aktualisierung wird O (number_of_rows) Operation ohne eine, aber wie ich schon sagte, sollte nicht der Programmierer mit der Entscheidung besteuert werden?
Nur neugierig!
In der Tat ist ein Grund, ein DBMS zu verwenden, die Datenintegrität zu erhalten. –
Datenintegrität und Datenindexierung, obwohl verwandt, sind zwei orthogonale Konzepte, nein? – amn
@amn, ja, ich glaube, sie sind. Und meistens ist die Lösung für die Datenintegrität nicht so elegant wie in diesem speziellen Fall. Oft kommt es darauf an, dass die Daten, die da sein sollen, tatsächlich überprüft werden. Dies hängt natürlich auch vom RDMS, Unterstützung für Fremdschlüssel, Schlüsseleinschränkungen usw. ab. –