1、整數型別,包括tinyint、smallint、mediumint、int、bigint,分別表示1位元組、2位元組、3位元組、4位元組、8位元組整數。任何整數型別都可以加上unsigned屬性,表示資料是無符號的,即非負整數。
長度:整數型別可以被指定長度,例如:int(11)表示長度為11的int型別。長度在大多數場景是沒有意義的,它不會限制值的合法範圍,只會影響顯示字元的個數,而且需要和unsigned zerofill屬性配合使用才有意義。
例子,假定型別設定為int(5),屬性為unsigned zerofill,如果使用者插入的資料為12的話,那麼資料庫實際儲存資料為00012。
2、實數型別,包括float、double、decimal。
decimal可以用於儲存比bigint還大的整型,能儲存精確的小數。
而float和double是有取值範圍的,並支援使用標準的浮點進行近似計算。
計算時float和double相比decimal效率更高一些,decimal你可以理解成是用字串進行處理。
3、字串型別,包括varchar、char、text、blob
varchar用於儲存可變長字串,它比定長型別更節省空間。
varchar使用額外1或2個位元組儲存字串長度。列長度小於255位元組時,使用1位元組表示,否則使用2位元組表示。
varchar儲存的內容超出設定的長度時,內容會被截斷。
char是定長的,根據定義的字串長度分配足夠的空間。
char會根據需要使用空格進行填充方便比較。
char適合儲存很短的字串,或者所有值都接近同乙個長度。
char儲存的內容超出設定的長度時,內容同樣會被截斷。
使用策略:
對於經常變更的資料來說,char比varchar更好,因為char不容易產生碎片。
對於非常短的列,char比varchar在儲存空間上更有效率。
使用時要注意只分配需要的空間,更長的列排序時會消耗更多記憶體。
盡量避免使用text/blob型別,查詢時會使用臨時表,導致嚴重的效能開銷。
4、列舉型別(enum),把不重複的資料儲存為乙個預定義的集合。
有時可以使用enum代替常用的字串型別。
enum儲存非常緊湊,會把列表值壓縮到乙個或兩個位元組。
enum在內部儲存時,其實存的是整數。
盡量避免使用數字作為enum列舉的常量,因為容易混亂。
排序是按照內部儲存的整數
5、日期和時間型別,盡量使用timestamp,空間效率高於datetime,
用整數儲存時間戳通常不方便處理。
如果需要儲存微妙,可以使用bigint儲存。
Redis有哪些資料型別
1.redis有哪些資料型別?s tring hash set,zset list 2.redis和memcache的區別是什麼?從儲存大小 memcached單個key value大小有限,乙個value最大只支援1mb key 最大250個字元 而redis最大支援512mb 從可靠性 memc...
PHP 資料型別有哪些?
1.boolean 布林型別 布林型資料,只有兩個值 false 假 和true 真 2.integer 整型 整型資料型別只能包含整數,這些資料型別可以是負數或者正數 3.float double 浮點型 浮點型型別用於儲存數字,和整型不同的是浮點型可以有小數點 4.string 字串型 字串就是...
sql 有哪些資料型別
資料型別 型別 描 述 bit 整型 bit 資料型別是整型,其值只能是0 1或空值。這種資料型別用於儲存只有兩種可能值的資料,如yes 或no true 或fa lse on 或off int 整型 int 資料型別可以儲存從 231 2147483648 到231 2147483 647 之間的...