W MyISAM tworzenie rekordów o stałej szerokości przynosi pewne korzyści. VARCHAR ma zmienną szerokość. CHAR ma stałą szerokość. Jeśli twoje wiersze mają tylko typy danych o stałej szerokości, to cały wiersz ma stałą szerokość, a MySQL zyskuje pewną przewagę, obliczając wymagania dotyczące miejsca i przesunięcie wierszy w tej tabeli. To powiedziawszy, przewaga może być niewielka i nie jest warta ewentualnego niewielkiego zysku, który jest równoważony przez inne koszty (takie jak wydajność pamięci podręcznej) z posiadania wyściełanych kolumn CHAR o stałej szerokości, w których VARCHAR przechowywałby bardziej zwarty.
Punkt przerwania, w którym staje się bardziej wydajny, zależy od Twojej aplikacji i nie jest to coś, na co można odpowiedzieć, z wyjątkiem testowania obu rozwiązań i korzystania z tego, który działa najlepiej dla Twoich danych w ramach użytkowania aplikacji.
Jeśli chodzi o INT(7) w porównaniu z INT(11), nie ma to znaczenia dla pamięci lub wydajności. Powszechnym nieporozumieniem jest to, że argument MySQL dotyczący typu INT ma cokolwiek wspólnego z rozmiarem danych — tak nie jest. Typ danych INT MySQL to zawsze 32 bity. Argument w nawiasach odnosi się do liczby cyfr do uzupełnienia, jeśli wyświetlasz wartość za pomocą ZEROFILL. Np. INT(7) wyświetli 0001234, gdzie INT(11) wyświetli 00000001234. Ale to dopełnienie pojawia się tylko podczas wyświetlania wartości, a nie podczas przechowywania lub obliczeń matematycznych.