Hello,
Ich widerspreche.
Wenn es um die Fragestellung "Welche Eigenschaften sollten indizierte Spalten haben?" geht, dann lautet meine Antwort: "Egal".
Nein, wenn es um "ideale Eigenschaften" für einen Index geht, dann ist das nicht egal. Eine Spalte, die nur JA oder NEIN Werte enthält, wird man nicht indizieren. Da würden sich mir die ....haare sträuben.
Diese Spalte müsste man erst durch Hinzufügen eines weiteren wertigen Unterscheidungsmerkmales zur Indexfähigkeit bringen.
Man kann sich seine Daten ja nicht aussuchen.
eben darum sollte man für die Wahl eines Index VORHER überlegen, was für Daten denn da kommen könnten und was der Worts Case wäre. Ein "unbalanced index"[tm] macht jede Performance kaputt. Google mal danach...
Wenn es in einer Telefonliste hundert "Meier" gibt, dann ist das so.
Und dann muss man für den Index Sorge tragen, dass man auch die Duplicates noch unterscheiden kann.
Und den Namen kann man eben nur als CHAR, VARCHAR oder TEXT/BLOB speichern - mehr Auswahl gibt es nicht.
Oh, du willst uns hier etwas suggerieren.... Den INDEX kann man aber sehr wohl auch über zwei Spalten und mehr eröffnen. Für die Namen wären das dann z.B. "Nachname, Vorname, Geburtsdatum". Allerdings kennt ein normales aber gutes DBMS auch NEAR als Option bei der Indexsuche.
Um die Verwaltung des Index hat sich die Datenbank zu kümmern.
Und um die Definition der Programmierer!
Ein guter Index zeichnet sich also durch eine hohe Auszeichnungsgüte und eine gleichmäßige Vertilung aus.
Das ist für die Programmierer der Datenbank interessant, nicht für die Nutzer derselben.
Genau das war die Frage. Wie hat der Programmierer den Index anzulegen?
Liebe Grüße aus http://www.braunschweig.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen