Tom: (SQL)(PHP) Prüfung auf Existenz von Datensätzen

Beitrag lesen

Hallo Knud

Für CHAR und VARCHAR Spalten werden stets nur die ersten 10 Buchstaben indiziert. Beispiel:

mysql> CREATE INDEX part_of_name ON customer (name(10));

Da die meisten Namen sich innerhalb der ersten 10 Buchstaben unterscheiden, sollte der INDEX nicht kleiner sein, als der
INDEX für die ganze Namensspalte.

Das heisst für mich, dass in dem Fall doch nur die ersten 10 Buchstaben relevant werden, oder versteh
ich das falsch?

So wie es geschrieben steht, scheint dies bei MySQL so der Fall zu sein.
Dies ist jedoch kein Standard sondern MySQL-spezifisch.
Darum lege Dich jetzt auf ein bestimmten SQL-Server fest, bevor Du Lösungen realisierst, die danach nicht funktionieren.
Zu MySQL kann ich Dir jedoch in keiner Weise weiterhelfen.

Grundsätzlich empfehle ich Dir bei dieser Problematik, dass Du tatsächlich ein weiteres (inhaltlich reduntandes, -> Michael) Feld führst, indem Du Dir frei von allen Einschränkungen des jeweiligen SQL-Servers Deinen Matchcode (eindeutiger Key) selbst erzeugst.
Dieses Feld lässt sich dan auch problemlos mit einem Index belegen.

Grüsse
Tom