数值数据类型
整数类型:
- TINYINT: 微型整数类型;占用
1 bytes
空间;有符号支持的范围:-128 ~ 127
; 无符号支持的范围:0 ~ 255
。 - SMALLINT: 小型整数类型;占用
2 bytes
空间;有符号支持的范围:-32768 ~ 32767
;无符号支持的范围:0 ~ 65535
。 - MEDIUMINT:中型整数类型;占用
3 bytes
空间;有符号支持的范围:-8388608 ~ 8388607
;无符号支持的范围:0 ~ 16777215
。 - INT,INTEGER:常规整数类型;占用
4 bytes
空间;有符号支持的范围:-2147483648 ~ 2147483647
;无符号支持的范围:0 ~ 4294967295
。 - BIGINT:大型整数类型;占用
8 bytes
空间;有符号支持的范围:-2^63^ ~ 2^63^-1
;无符号支持的范围:0 ~ 2^64^-1
。
小数类型:
- FLOAT:浮点数数据类型;FLOAT(n):如果
0 <= n <= 24
占用4 bytes
,如果25 <= b <= 53
占用8 bytes
;FLOAT:不指定位数个数则可占用4 bytes
;FLOAT(M,N):M表示总位数,N表示小数位数。 - DOUBLE [PRECISION],REAL:双精度小数类型;占用
8 bytes
;DOUBLE(M,N):M表示总位数,N表示小数位数;REAL已经被弃用。 - DECIMAL(M,D), NUMERIC(M,D):小数数据类型;占用
0 ~ 8 bytes
;DECIMAL(M,N):M表示总位数,N表示小数位数。
BIT类型:
- BIT(M):存储BIT值的数据类型,M的取值范围是
1 ~ 64
;占用(M+7)/8 bytes
。
date和time数据类型
- DATE:存储日期,格式为:
yyyy-mm-dd
;MySQL 5.6.4版本之前占用3 bytes
,MySQl 5.6.4版本之后占用3 bytes
。 - TIME:存储时间,格式为:
HH:MM:SS
;MySQL 5.6.4版本之前占用3 bytes
,MySQL 5.6.4版本之后占用3 ~ 6 bytes
。 - YEAR:存储年份,格式为:
yyyy
;占用1 bytes
。 - DATETIME:存储日期与时间,格式为
yyyy-mm-dd HH:MM:SS
,MySQL 5.6.4版本之前占用8 bytes
,MySQL 5.6.4版本之后占用5 ~ 8 bytes
。 - TIMESTAMP:存储日期与时间,格式为
yyyy-mm-dd HH:MM:SS
,存储的时间范围是1970年1月1日到2023年1月19日;MySQL 5.6.4版本之前占用4 bytes
,MySQL 5.6.4版本之后占用4 ~ 7 bytes
。
字符数据类型
- CHAR:定长字符类型;允许存储
0 ~ 255
个字符;字符集不同每个字符占用的空间不同(假设1个字符占用 W bytes),所以CHAR(M)占用M * W bytes
空间。 - VARCHAR:可变长度字符类型;允许存储
0 ~ 65535
个字符;如果存储 0 到 255 个字符,占用L + 1 bytes
空间。如果列值占用> 255 bytes
,则占用L + 2 bytes
空间。 - BINARY:定长二进制字符类型;允许存储
0 ~ 255
个字符,占用0 <= M <= 255 bytes
空间。 - VARBINARY:可变长度字符类型;允许存储
0 ~ 65535
个字符;如果存储 0 到 255 个字符,占用L + 1 bytes
空间。如果列值占用> 255 bytes
,则占用L + 2 bytes
空间。 - TINYBLOB,TINYTEXT:微型大对象数据类型;列字符串实际占用空间
L < 2^8^ bytes
,则占用L + 1 bytes
空间。 - MEDIUMBLOB,MEDIUMTEXT:中型大对象类型;列字符串实际占用空间
L < 2^24^ bytes
,则占用L + 3 bytes
空间。 - BLOB,TEXT:常规大对象数据类型;列字符串实际占用空间
L < 2^16^ bytes
,则占用L + 2 bytes
空间。 - LONGBLOB,LONGTEXT:大型大对象数据类型;列字符串实际长度
L < 2^32^ bytes
,则占用L + 4 bytes
空间。 - ENUM:枚举字符类型;ENUM('value1','value2',...),1 bytes, 2 bytes取决于枚举值的数量(最大支持65535个值)。
- SET: 集合字符类型;SET('value1','value2',...),1 bytes,2 bytes,3 bytes,4 bytes,8 bytes,取决于集合成员的数量(最多支持64个成员)。
备注:
- nonbinary类型:M表示字符个数;
- binary类型:M表示字符串占用的bytes值。
- L表示字符串占用的bytes值。
地理空间数据类型
地理空间数据类型请参考:MySQL 8.0: Spatial Data Types
JSON数据类型
JSON数据类型请参考:MySQL 8.0: The JSON Data Type
参考:
标签:8.0,数据类型,占用,bytes,类型,MySQL,空间 From: https://www.cnblogs.com/haha029/p/17851384.html