mysql 數據類型

數據類型優化建議

  • 字段所佔空間越小越好。
  • 避免使用null
  • 能用整數的不用不用字符串。
  • 日期推薦使用timestamp。
  • 關聯查詢關聯字段儘可能類型一致。

整數類型

類型 所佔空間(位) 值範圍 說明
tinyint 8 -2^7  至 -2^7(128)  
smallint 16 -2^15  至 -2^15(32768)  
mediumint 24 -2^23  至 -2^23 (8388608)  
int 32 -2^31  至 -2^31(...)  
bigint 64 -2^63  至 -2^63 (...)  
  • + unsigned 所佔空間不變,值乘以2。
  • 有無unsigned儲存空間不變,性能也不會變。
  • int(11)  11只是限制數字個數與儲存空間大小無關。

 

實數類型

類型 所佔空間(位) 值範圍 說明
float 32    
double 64    
decimal 最大65個數字(4位/9個數字,也就是31位)   轉化爲double進行實現的
  • 可以把浮點乘以多少倍用整數的形式儲存。

 

字符類型

類型 所佔空間(位) 值範圍 說明
varchar     變長;會利用1-2個字節來存儲長度(大於255用兩個字節)
char     定長;適合儲存固定長度的字符串
text     文本儲存
binary     定長;二進制儲存可以區分大小寫;
varbinary     變長;二進制儲存可以區分大小寫;
blob     二進制文本儲存
enum     轉化爲整數進行儲存
timestamp     1970年1月1日午夜以來的秒數
datetime     格式: YYYY-MM-DD HH:MM:SS
  • varchar(1)比char(1)多用一個字節。
  • enum 與char或者varchar關聯查詢,速度沒有char和char關聯查詢快(個人理解:類型不同導致)。
  • enum排序是根據儲存的整數進行排序,可以使用field進行處理這個不足,但是如果使用field將無法使用該字段所建立的索引。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章