您好,登錄后才能下訂單哦!
整數類型:
Tinyint-8
Smallint-16
Mediumint-24
Int-32
Bigint-64
實數類型(帶有小數部分的數字)
Float-4/double-8:浮點
Decimal:精確(只是存儲格式,在計算中會轉為double類型)
浮點類型在存儲同樣范圍的值時,通常比decimal使用更少的空間。
字符串類型:
Varchar:可變長字符串(需要1-2個字節存儲字符串長度)
優點:比定長類型節約空間;
缺點:碎片問題。字符串update變長時,一個行的占用空間變長,但是在頁內沒有更多空間存儲,MYISAM將行拆成不同片段存儲,InnoDB分裂頁使行可以放進頁內;
適用:字符串最大長度比平均長度大很多;列的更新很少;
Char:定長字符串(mysql會刪除所有末尾空格)
優點:不易產生碎片
適用:存儲密碼的MD5值;經常變更的數據;
大型數據類型:
Blob:二進制
Text:字符
特殊性:mysql將blob和text值當做一個獨立的對象處理,當值太大時,innodb在值內存儲一個指針,外部存儲區域存儲實際的值;mysql對blob和text的排序,只對每列的最前max_sort_length進行排序;mysql不能將列的全部長度字符串進行索引,也不能使用這些索引進行排序;
枚舉類型ENUM:
mysql在存儲枚舉類型時非常緊湊;
Mysql在內部會將每個值在列表中的位置保存為整數,并且在表的.frm文件中保存“數字-字符串”的映射關系的查找表;
缺點:字符串列表是固定的,添加或刪除字符串都需要alter table;
優點:可以縮小表的大小;主鍵減小后,innodb表的非主鍵索引也會變小;
關聯速度:enum列 關聯 enum列 > varchar列 關聯 varchar列 > enum列 關聯 varchar列
日期時間類型:
Datetime:8字節;與時區無關;保存大范圍的值,從1001年到9999年,精度為秒;
Timestamp(盡量使用):4字節;依賴于時區;保存1970.1.1以來的秒數;列默認為not null;
Timestamp的特殊性:如果插入數據時沒有指定第一個timestamp列的值,mysql則設置這個值為當前時間;
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。