dedlfix: Varchar immer aufs höchste setzen?

Beitrag lesen

Tach!

Obwohl man bei Varchar jede beliebige Bytezahl benutzen kann, bleibe ich immer auf der Binären Schiene hängen. Geht euch das auch so?

Mir nicht.

Wäre es nicht klüger immer die höchstmenge von ca. 65.000 (oder?) zu nehmen?

Es gibt die Höchstmenge von 65535 Bytes pro Row. Ein Varchar benötigt bei UTF-8 bis zu 3 Byte, weswegen die Höchstmenge von einem UTF-8-Varchar-Feld bei 21844 liegt - vorausgesetzt es ist das einzige Feld in der Tabelle. Kommen weitere hinzu, sinkt die Höchstgrenze pro Feld. Nicht mitgezählt werden übrigens BLOB- und TEXT-Felder. Es ist also schon rein technisch nicht möglich, gleich von Anfang an die Höchstgrenze zu nehmen. Es gibt übrigens auch "silent column type changes", da wird ein zu großes Feld stillschweigend zu einem der TEXT-Typen geändert. Jetzt könntest du noch auf die Idee kommen, gleich TEXT zu verwenden. Damit holst du dir aber nur weitere Nachteile ins Boot.

dedlfix.