< 返回新闻公共列表
					
						
						
Mysql数据类型
						发布时间:2023-06-26 14:00:08
						
						
							
Mysql的数据类型
- 数据类型尽量简单
 - 数据类型尽量的小
 - 数据类型的值尽量不为Null
 
整数数据类型
- TINYINT:数据长度为8位
 - SMALLINT:数据长度为16位
 - MEDIUMINT:数据长度为24位
 - INT:数据长度为32位
 - BIGINT:数据长度为64位
 
- 整数数据类型可选属性:UNSIGNED(表数据非负数,可以将正数的值扩大两倍)
 
- 整数数据类型的范围为-2^(n-1)至2^(n-1)-1;n为数据长度
 
实数类型
- 指带有小数部分的数字
 - DECIMAL:一般用于高精度计算;拥有比(浮点类型)(FLOAT,DOUBLE)更高的精度,但是性能一般也弱于浮点类型
 - DECIMAL(n,m):指允许有n位正数,m位小数
 - 一般说浮点不适合精度计算,是因为如果超过对应的长度,会发生截断处理
 - 一般为了解决精度问题以及DECIMAL性能问题,采用BIGINT缩放来处理数据计算
 
字符类型
- VARCHAR相比于CHAR节省空间,但是更加只使用自身所需要的数据长度;
 - 配置ROE_FORMAT=FIXED属性会导致VARCHAR定长
 - VARCHAR需要1至2个额外字节记录字符长度
 - 由于VARCHAR是变长的,所以在UPDATE时,需要做额外的工作,对性能具有一定的影响;也有可能会导致碎片
 
- CHAR类型总会分配固定的空间,CHAR会删除末尾的空格,也会采用空格填充的方式补足长度
 - 对于定长类型,其性能优于VARCHAR
 
BLOB、TEXT数据类型
- BLOB类型:采用二进制存储很大的字符串类型的数据
 - TEXT类型:采用字符的方式存储很大的字符串数据
 - BLOB、TEXT类型:
 
- BLOB没有排序规则、字符集;TEXT有排序规则、字符集
 - 当BLOB、TEXT很大时,会在行内生成指针指向存储具体值的外部地址
 
日期、时间类型
- DATETIME:精度为秒,与时区无关,使用8个字节的存储空间,格式为(YYYYMMDDHHMMSS,2008-01-16 22:37:08)
 - TIMESTAMP:存储了标准格林兰时间的秒数,使用4个字节的存储空间,与时区有关
 - 一般情况下,使用TIMESTAMP作为时间存储的单位,因为空间效率更高
 - 如果需要使用比秒更小的时间单位,则可以使用BIGINT、DOUBLE存储时间;也可以使用MariaDB替换MySQL