MySQL中整形int长度占用与支持最大数范围的计算

  • 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

点赞