MySQL 表字段型別選擇

2021-09-20 23:02:13 字數 738 閱讀 2149

mysql欄位型別大致分為以下幾類:

字元型 char,varchar,set,enum,text,blob,longtext等

數字型 int,float,double,tinyint,decimal等

日期型 date,time,datetime

那麼對於設計表的時候該如何選擇欄位的資料型別???可以從如下幾個方面考慮

1,字段儲存什麼樣的資料

只有在挑選資料的時候明確了儲存的資料是字元,數值,日期,座標,才能選擇哪種型別的資料進行匹配一定要問足夠多的問題,才能明確字段到底是用來儲存什麼資料,就像設計降雨量的表,總是會聽到降雨量0.25公釐,或者稀少這樣的字眼,怎麼解決?如果選擇數值可以通過給稀少乙個定位值如0就是代表稀少,或者乙個範圍查詢的時候可以這樣寫:

select if (precip >0 and precip <0.1 ,'trace',precip) from ......

有些非常明顯是數值,但是是否精確小數等等。

2,資料是否都在某個特定的區間內

資料是多大,如果只有1-100(可以考慮tinyint),如果是整數,是不是都是正整數(可以考慮unsingned),如果只有男女(可以考慮enum)

可以後期通過select * from table_name procedure analyse();去分析表中資料的範圍,最大最小

3,資料型別的選擇對效能的影響

就像如果把乙個字段設定成字串,但是用起來比較麻煩,排序,查詢走索引等一系列問題

MySQL表字段型別的選擇

1.選擇更小的資料型別 使用正確地儲存和表示資料的最小型別。更小的資料型別通常更快,因為他們使用更少的磁碟空間 記憶體和cpu快取。但是要保證實際儲存的資料不超過設定。整數型別 範圍tinyint 128到127 smallint 32768到32767 mediumint 8388608到8388...

MySQL建表字段型別參考

1 數值型別 1 int m 說明 標準大小的整數 允許的屬性 不選 可以取正負數 unsigned 無符號,取值範圍增大一倍 unsiged zerofill 在數值前自動填0 auto increment 自動遞增 取值範圍 2147483648 到2147483647 231 到231 1 或...

mysql 字段型別選擇

整數型別 型別占用位元組 數值範圍 tinyint 1 128 127 0 255 smallint 2 32768 32767 0 65535 mediumint 3 8388608 8388607 0 16777215 int integer 4 2147483648 2147483647 0 ...