1. 程式人生 > >mysql資料型別及佔用位元組數【mysql】

mysql資料型別及佔用位元組數【mysql】

一、數值型別

1,int 型別  4位元組 。備註:一個位元組8位,即有32位,存在一個符號位。所以能存的數值大小為-2的31次方到2的31次方-1;

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個位元組,兩者的儲存資料都非unic