mysql数据类型及占用字节数【mysql】
一、数值类型
1,int 类型 4字节 。备注:一个字节8位,即有32位,存在一个符号位。所以能存的数值大小为-2的31次方到2的31次方;
2,tinyint 类型 1字节。
3,smallint 类型 2字节
4,mediumint 类型 3字节
5,bigint 类型 8字节
6,float 类型 4字节 单精度浮点数
7,double 类型 8字节 双精度浮点数
备注:float单精度有效数字是7位,double双精度有效数字是16位。
double占用的内存是float的两倍,所以float的运算速度要快,可能的条件下尽可能的使用float。
二、字符串类型
char 类型 M字节,1 <= M <= 255
varchar 类型 L+1 字节, 在此L <= M和1 <= M <= 255
text 类型 L+2 字节, 在此L< 2 ^ 16
备注:
(1)char是定长,比如定义为10。存ABC,占用的空间仍然为10.
varchar是长度可变的,存ABC,占用的空间为3.获取数据时,varchar不需要将后面的空格去掉。
(2)char的存取数度还是要比varchar要快得多,因为其长度固定,方便程序的存储与查找;但是char也为此付出的是空间的代价,因为其长度固定,所以难免会有多余的空格占位符占据空间,可谓是以空间换取时间效率,而varchar是以空间效率为首位的。
(3)char的存储方式是,对英文字符(ASCII)占用1个字节,对一个汉字占用两个字节;而varchar的存储方式是,对每个英文字符占用2个字节,汉字也占用2个字节,两者的存储数据都非unicode的字符数据。