Nie, to powszechne nieporozumienie dotyczące MySQL. W rzeczywistości „długość” nie ma wpływu na rozmiar liczby całkowitej ani zakres wartości, które może przechowywać.
TINYINT
ma zawsze 8 bitów i może przechowywać 2 różne wartości.SMALLINT
ma zawsze 16 bitów i może przechowywać 2 różne wartości.INT
ma zawsze 32 bity i może przechowywać 2 różne wartości.BIGINT
ma zawsze 64 bity i może przechowywać 2 różne wartości.
Jest też MEDIUMINT, ale inżynierowie pracujący nad MySQL mówią mi, że MEDIUMINT zawsze jest wewnętrznie promowany do 32-bitowego INT, więc tak naprawdę nie ma żadnych korzyści z używania MEDIUMINT.
Długość jest tylko do wyświetlania, a to ma znaczenie tylko wtedy, gdy używasz ZEROFILL
opcja.
Zobacz przykład w mojej odpowiedzi na Jaka jest różnica (po zastosowaniu do mojego kodu) między INT(10) a INT(12)?