TINYINT
= 1 字节 (8 bit)SMALLINT
= 2 字节 (16 bit)MEDIUMINT
= 3 字节 (24 bit)INT
= 4 字节 (32 bit)BIGINT
= 8 字节 (64 bit).
最大范围 = 2^比特数
如:
TINYINT
= 2^8 = 最大支持256个数,Unsigned就是0~255,同理Signed就是-128~+127
SMALLINT
= 2^16 = 最大支持65536个数,Unsigned就是0~65535,同理Signed就是-32768~+32767
其余计算省略……
INT(11)
和INT(1)
都同样占用4字节,而括号里面的数字,仅代表显示宽度(display width)。请脑补重点号应该点在显示两个字上,显示不是真实,只是为了方便一种输出的展现。只用在使用诸如ZEROFILL
属性的时候,才可以直观的看出来。不管括号里面数字填多少,都不会影响实际的数据存储。可见官方文档解释:https://dev.mysql.com/doc/refman/5.5/en/numeric-type-attributes.html