mysql資料型別及佔用位元組數【mysql】
阿新 • • 發佈:2019-08-03
一、數值型別
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