No, questo è un malinteso comune su MySQL. In effetti, la "lunghezza" non ha alcun effetto sulla dimensione di un intero o sull'intervallo di valori che può memorizzare.
TINYINT
è sempre 8 bit e può memorizzare 2 valori distinti.SMALLINT
è sempre a 16 bit e può memorizzare 2 valori distinti.INT
è sempre a 32 bit e può memorizzare 2 valori distinti.BIGINT
è sempre a 64 bit e può memorizzare 2 valori distinti.
C'è anche un MEDIUMINT, ma gli ingegneri che lavorano su MySQL mi dicono che MEDIUMINT viene sempre promosso internamente a un INT a 32 bit, quindi in realtà non c'è alcun vantaggio nell'usare MEDIUMINT.
La lunghezza è solo per la visualizzazione, e questo conta solo se usi ZEROFILL
opzione.
Vedi un esempio nella mia risposta a Qual è la differenza (quando viene applicato al mio codice) tra INT(10) e INT(12)?