霜天部落 | 专注PHP研发,研究LAMP高性能架构部署与优化

MySQL int(X) 中 X 的含义

MySQL int(X) 中 X 的含义:

X 这个可选的宽度规格说明是用于在数值显示时,对某些值的宽度短于该列宽度的值进行左填补显示的,而不是为了限制在该列中存储值的宽度,也 不是为了限制那些超过该列指定宽度的值的可被显示的数字位数。注意,如果在一个整型列中存储一个超过显示宽度的更大值时,当 mysql 为某些复杂的联结(join)生成临时表时,你可能会遇到问题,因为在这种情况下,MySQL 信任地认为所有的值均适合原始的列宽度。

而int本身就是4个字节 bigint是8个字节 所以说int(X)的含义就是 int决定数据存储的字节 X表示期望数据的列宽度

整数列的显示宽度与mysql需要用多少个字符来显示该列数值,与该整数需要的存储空间的大小都没有关系,比如,不管设定了显示宽度是多少个字符,bigint都要占用8个字节。

附:

数值型存储需求

TINYINT[(M)]    1字节
SMALLINT[(M)]  2字节
MEDIUMINT[(M)] 3字节
INT[(M)] 4字节
BIGINT[(M)] 8字节
FLOAT[(M, D)] 4字节
DOUBLE[(M, D)] 8字节
DECIMAL (M, D) M字节(MySQL < 3.23),M+2字节(MySQL > 3.23 )

数值型取值范围

TINYINT[(M)] 有符号值:-128 到127(- 27 到27 – 1)
无符号值:0到255(0 到28 – 1)
SMALLINT[(M)] 有符号值:-32768 到32767(- 215 到215 – 1)
无符号值:0到65535(0 到21 6 – 1)
MEDIUMINT[(M)] 有符号值:-8388608 到8388607(- 22 3 到22 3 – 1 )
无符号值:0到16777215(0 到22 4 – 1)
INT[(M)] 有符号值:-2147683648 到2147683647(- 231 到231- 1)
无符号值:0到4294967295(0 到232 – 1)
BIGINT[(M)] 有符号值:-9223372036854775808 到9223373036854775807(- 263到263-1)
无符号值:0到18446744073709551615(0到264 – 1)
FLOAT[(M, D)] 最小非零值:±1.175494351E – 38
DOUBLE[(M,D)] 最小非零值:±2.2250738585072014E – 308
DECIMAL (M, D) 可变;其值的范围依赖于M 和D

 



There are 1 Comments to "MySQL int(X) 中 X 的含义"