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

转载于:https://my.oschina.net/songms/blog/3083156

你可能感兴趣的:(mysql数据类型及占用字节数【mysql】)