@Adrian Hämmerli:
Diese Aussage das der \"Char \" in einer C/S umgebung die schlechtere wahl ist kann man ja so nicht stehen lassen.
Also, ich habe meinen Beitrag nochmals durchgelesen. Du auch ?-)
Von "schlechtere Wahl" war da auf keinem Fall die Rede. Nix da. Keine Spur. Von einem Nachteil, wenn Du 95 "leeren" von 100 Zeichen regelmäßig übertragen muß, das schon.
Wenn ich bei den Kunden meiner Firma täglich 185000 Datensätze pro Person a 10 Arbeitsplätze durch ein mit anderen Strukturen/Programmen/Servern geteilten Netzwerk schieße, und stelle fest, 95 bytes von 100 sind durchschnittlich für besagtes Feld umsonst durchgereicht worden, dann tue ich gut etwas daran zu ändern L:)
Übrigens:
Perform-mäßig
sollte, wenn es wegen Sortierungsbedarf indiziert wird (sagen wir mal auf- und absteigend) :
Beispiel:
Stelle Dir mal 25000 Kundenanschriften mit einem Feld "PLZ".
Jo.
Die Kunden sind in allen Ländern der Welt.
Also nix mit einer festen "logischen" Länge von 5 Zeichen, die als Integer zu speichern wären.
Alphanumerisch muß das Feld sein. Und die Länge ist ungewissss.
Nun.
Im durchschnitt könnten 20 Kunden pro PLZ zu finden sein.
Hast Du das Feld als CHAR(15) deklariert, dann gibt es wahrscheinlich Ärger bei der Sortierung: der Vergleich dürfte bis zur letzten Stellen der Zeichenkette reichen für jeder dieser 20er Gruppe...
Es ist nicht eine Tasse-Kaffee die Du in der Wartezeit trinken darfst sondern den Inhalt eines "Eighteen-Wheeler-Tank". Und ich sage Dir: es ist nicht schlimmeres als USA-Kaffee :o)
Mierda !!! Ich hatte vergessen: wenn "PLZ", dann auch "PLZ des Postfaches". Doppel-Belastung also, da das Feld seltener gefüllt wird...Mamamiacarambasalsaconchipolata... <):-) Olé !-]
Also für die CHAR(...) gilt klar: Selten wenn überhaupt, aber immer wieder wenn man's braucht.
Gute beispiele bzw. Kandidate für CHAR(...) sind:
- Barcodes in einem für die Tabelle festgelegten Format (z.B. nur EAN128)
- Steuernummern, Warennummer oder Zoll-Ids usw. also alles was "amtlich"-festgelegt ist.
- ISO-Codes in manchen Bereiche (z.B. Länder ISO-Codes)
- Sehr lange lange lange (vielfältige) Angaben wenn es viele Datensätze gibt.
- Sehr sehr sehr kurze Angaben bei wenig (und eher eindeutiger) Datensätze mit Sortierung (Z.B. Dateiformat-Extensions in einer Picture-Typ-Tabelle)
- Sehr sehr sehr kurze Angaben bei viele Datensätze aber ohne Sortierung (da die Häufigkeit der Übereinstimmung mehreren Einträge keine grosse Rolle mehr spielt).
Voila.
P.S:
Lao Tseu sagte:
"Rache ist unnötig und absurd.
Setze Dich einfach am Uffer und Bald wirst Du den Kadaver Deines Gegners vorbeischwimmen sehen..." :o)
Gruß,