Index einer varchar-Spalte
Fragte ich Google, aber ich bin immer noch verwirrt.
1) gibt es ein problem bei der Indizierung einer Varchar-Spalte. Wenn ich nicht sollte, und Wann sollte ich
2) Index eines char-Spalte VS Varchar-Spalte.
Dank
- Wenn u eine vorhandene Antwort, oder etwas hinzufügen möchten, bitte tun.
Du musst angemeldet sein, um einen Kommentar abzugeben.
1 - Index, wenn Sie Abfragen, und es ist selektiv genug. Wenn es eine Spalte, in der 90% der Werte sind die gleichen, es wird nicht viel zeigen.
2 - Dies ist nicht eine Frage, aber ich denke, Sie wollen wissen, wenn Sie sollte. Ja, wenn Sie die Abfrage, und es erfüllt die oben genannten Kriterien.
varchar
etwa 50 chars max.char
vs.varchar
sind Feste Größe vs. variable Größe (ie.char(100)
) nimmt immer 100 Byte Daten Seitevarchar(100)
nimmt bis zu 100)In der Regel Leistung
In der Theorie/design, müssen Sie ein logisches Modell, wo, sagen wir, Benutzername ist einzigartig.
Aber bei der Umsetzung Zeit, die Sie wissen, dass dies zu verwenden ist teuer (Fall, Akzente, Länge usw.) im Vergleich zu der Verwendung eines Surrogat - "Benutzer" - Spalte, die ist effizienter als ein index. Sagen, dass, würde man einen index auf name sowieso, weil es eindeutig sein sollte.
Wäre der Unterschied, wo Sie diesen index: wenn es in einer untergeordneten Tabelle als Fremdschlüssel-Spalte, es ist keine gute Idee. Oder wie ein clustered-index.
Als einen index für eine Tabelle ohne FKs, dann ist es weder hier noch dort.
Schließlich würde ich nur mit den char/varchar für Sachen wie ISO-Sprache oder Währung-codes (DE, EN, GBP, CHF etc.). Aber mein cut-off variiert, um ehrlich zu sein...