For at besvare spørgsmålet bruger MySql på disken 1 + størrelsen, der bruges i feltet til at gemme dataene (så hvis kolonnen blev erklæret varchar(45), og feltet var "FooBar", ville den bruge 7 bytes på disken, medmindre du selvfølgelig brugte et multibyte tegnsæt, hvor det ville bruge 14 bytes). Så uanset hvordan du erklærer dine kolonner, vil det ikke gøre en forskel i lagerenden (du sagde, at du er bekymret for diskoptimering til en massiv tabel). Det gør dog en forskel i forespørgsler, da VARCHAR'er konverteres til CHAR'er, når MySql laver en midlertidig tabel (SORT, ORDER osv.), og jo flere poster du kan passe ind på en enkelt side, jo mindre hukommelse og hurtigere vil dine tabelscanninger være.