mysql数据类型及占用字节数【mysql】

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的字符数据。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: