Nej, detta är en vanlig missuppfattning om MySQL. Faktum är att "längden" inte har någon effekt på storleken på ett heltal eller intervallet av värden som det kan lagra.
TINYINT
är alltid 8 bitar och kan lagra 2 distinkta värden.SMALLINT
är alltid 16 bitar och kan lagra 2 distinkta värden.INT
är alltid 32 bitar och kan lagra 2 distinkta värden.BIGINT
är alltid 64 bitar och kan lagra 2 distinkta värden.
Det finns också en MEDIUMINT, men ingenjörerna som arbetar med MySQL säger till mig att MEDIUMINT alltid befordras till en 32-bitars INT internt, så det finns faktiskt ingen fördel med att använda MEDIUMINT.
Längden är endast för visning, och detta spelar bara roll om du använder ZEROFILL
alternativ.
Se ett exempel i mitt svar på Vad är skillnaden (när den tillämpas på min kod) mellan INT(10) och INT(12)?