資料庫優化——選擇合適的欄位型別
一、非數字型別
型別 |
範圍 |
說明 |
|
Char(N) [ binary] |
N=1~255 個字元 |
固定長度 |
std_name cahr(32) not null |
VarChar(N)[binary] |
N=1~255 個字元 |
可變長度 |
std_address varchar(256) |
TinyBlob |
最大長度255個字元(2^8-1) |
Blob (Binary large objects)儲存二進位資料,且有分大小寫 |
memo text not null |
TinyText |
最大長度255個字元(2^8-1) |
||
Blob |
最大長度65535個字元(2^16-1) |
||
Text |
最大長度65535個字元(2^16-1) |
||
MediumBlob |
最大長度 16777215 個字元(2^24-1) |
||
MediumText |
最大長度 16777215 個字元(2^24-1 |
||
LongBlob |
最大長度4294967295個字元 (2^32-1) |
||
LongText |
最大長度4294967295個字元 (2^32-1) |
||
Enum |
集合最大數目為65535 |
列舉(Enumeration),Enum單選、Set複選 |
sex enum(1,0) |
Set |
集合最大數目為64 |
辨別Null與Not Null :Null為允許儲存空值(Null)
二、數字型別
型別 |
範圍 |
說明 |
例如 |
TinyInt[M] [UNSIGNED] |
-128~127 |
num tinyint unsigned |
|
SmallInt[M] [UNSIGNED] |
-32768~32767 |
||
MediumInt[M] [UNSIGNED] |
-8388608~8388607 |
||
Int[M] [UNSIGNED] |
-2^31~2^31-1 |
||
BigInt[M] [UNSIGNED] |
-2^63~2^63-1 |
||
Float [(M,D)] |
-3.4E+38~3.4E+38( 約 ) |
注: M 為長度, D 為小數,Float 4 bytes,Double 8 bytes |
|
Double [(M,D)] |
-1.79E+308~1.79E+308( 約 ) |
||
Decimal [(M,D)] |
辨別ZeroFill:當宣告關鍵字ZeroFill為自動填滿0,如 000021
三、日期時間
型別 |
範圍 |
說明 |
Date |
日期(yyyy-mm-dd) |
|
Time |
時間(hh:mm:ss) |
|
DateTime |
日期與時間組合(yyyy-mm-dd hh:mm:ss) |
|
TimeStamp |
yyyymmddhhmmss |
|
Year |
年份yyyy |