MySQL speichert 5 Bytes plus ein Byte für die Länge. Wenn das varchar größer als 255 ist, werden 2 Bytes für die Länge gespeichert.
Beachten Sie, dass dies vom Zeichensatz der Spalte abhängt. Wenn der Zeichensatz utf8 ist, benötigt mysql bis zu 3 Bytes pro Zeichen. Einige Speicher-Engines (z. B. Arbeitsspeicher) erfordern immer die maximale Bytelänge pro Zeichen für den Zeichensatz.
Eine Spalte nullfähig zu machen bedeutet, dass mysql ein zusätzliches Byte für bis zu 8 nullfähige Spalten pro Zeile beiseite legen muss. Dies wird als "Nullmaske" bezeichnet.
Es ist nicht einmal konsistent zwischen Speicher-Engines innerhalb von mysql!