Im Allgemeinen, für ein VARCHAR-Feld, die Menge der Daten in jedem Feld bestimmt seinen Fußabdruck auf der Festplatte und nicht die maximale Größe (im Gegensatz zu einem CHAR-Feld, das immer hat der gleiche Fußabdruck).
Es gibt eine Obergrenze für die Gesamtdaten, die in allen Feldern eines Index von 900 Byte gespeichert werden (900 byte index size limit in character length).
Je größer Sie das Feld machen, desto wahrscheinlicher werden die Leute versuchen, für andere Zwecke als das, was Sie beabsichtigten - und desto größer die Bildschirmfläche benötigt, um den Wert zu zeigen - so seine gute Praxis zu versuchen, die auszuwählen richtig Größe, anstatt davon auszugehen, dass wenn Sie es so groß wie möglich machen, es Ihnen sparen wird, das Design erneut zu besuchen.
Es gibt einen tollen Kommentar in dem oben genannten Artikel. "Es gibt einen möglichen Leistungseinfluss: In MySQL speichern temporäre Tabellen und MEMORY-Tabellen eine VARCHAR-Spalte als Spalte mit fester Länge, die auf die maximale Länge aufgefüllt wird. Wenn Sie VARCHAR-Spalten entwerfen, die viel größer sind als die größte benötigte Größe wird mehr Speicher verbrauchen als Sie selbst. Dies wirkt sich auf Cache-Effizienz, Sortiergeschwindigkeit usw. aus. " – Riedsio