資料庫型別

2021-07-28 10:17:15 字數 1432 閱讀 8644

1.選擇優化的資料型別

選擇正確的資料型別對於效能提高至關重要。

1.更小的通常更好:一般情況下使用可以正確儲存資料的最小資料型別。

2.簡單就好:簡單資料操作需要更少的cpu週期。例如整型比字串操作代價低,因為字符集和校對規則(排序規則)使字元比較比整型比較更複雜。應該使用mysql內建型別而不是使用字串來儲存時間和日期,使用整型儲存ip位址。

3.盡量避免null:nul是mysql列的預設屬性。查詢中包含有null的列更難優化,如果在列上建索引,最好避免null的列。

1.整型資料

數字分為整數和實數。整數分為tinyint,smallint,mediumint,int,bigint。分別為8,16,24,32,64位儲存空間,取值範圍為-2的n-1次到2的n-1次-1。

整型型別還有個可選的unsigned,不允許負數。因為沒有負數所以可以是正數的範圍提高一倍。有符號數和無符號數占用相同的儲存空間和具有相同的效能。

整數計算一般使用64位的bigint整數,在32位環境也是一樣的。

mysql可以指定整數型別的寬度:int(11),對大多數應用是沒有意義的,它只是規定了mysql的一些互動工具用來顯示字元的個數。對於儲存和計算來說,int(1)和int(20)是一樣的。

2.實數資料

實數是帶有小數部分的數字。不但可以儲存小數還可以儲存整數。

float和double型別支援使用標準的浮點計算來進行近似計算。

decimal型別用於儲存精確型別的小數,在mysql5.0以上,decimal型別支援精確計算。這是伺服器自己實現的,cpu還是用的浮點計算

浮點型別儲存同樣的值時,通常比decimal使用更少的空間,float占用4位元組,double 占用8位元組。mysql預設使用double來作為內部浮點計算的型別。

因為需要額外的儲存空間和計算開銷,所以只有在進行小數精確計算時才使用decimal。但在資料量比較大時可以使用bigint來代替decimal,只要乘以相應的倍數就行了。

3.字串型別

varchar:儲存可變字串,最常見的字元型別,比定長字串更省空間,因為他僅使用必要的空間。如果表的row_format為fixed的話就是定長的了。

varchar使用1或2個額外的空間記錄長度。列的長度小於或等於255使用1位元組,其他使用2位元組。

char:是定長的。char適合儲存定長或者所有的值都接近乙個長度。

blob和text是儲存很大的字串而設計的,乙個用二進位制儲存,乙個用字串儲存。

4.日期型別

datetime:把日期封裝為yyyymmddhhmmss的格式,使用8位元組的儲存空間。預設情況下。mysql以一種可排序的無歧義的格式顯示datetime的值。例如「1990-12-12 12:23:23」.

timestamp:記錄從2023年1月1日開始到現在的秒數。使用4位元組的儲存空間。timestamp預設為not nul和其他型別不一樣。

資料庫型別

longlong llval vt i8.long lval vt i4.byte bval vt ui1.short ival vt i2.float fltval vt r4.double dblval vt r8.variant bool boolval vt bool.variant boo...

mysql資料庫資料項型別 資料庫資料型別有哪些

mysql中定義資料欄位的型別對你資料庫的優化是非常重要的。mysql支援多種型別,大致可以分為三類 數值 日期 時間和字串 字元 型別。一 數值型別 mysql支援所有標準sql數值資料型別。這些型別包括嚴格數值資料型別 integer smallint decimal和numeric 以及近似數...

資料庫資料型別

一 string型別 1 char n 固定長度,最多8000字元 2 varchar n 可變長度,最多8000字元 3 varchar max 可變長度,最多1073741824字元 4 text 可變長度,最多2gb文字資料 5 nchar 固定長度的unicode,最多4000字元 6 nv...