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,資料類型的選擇對性能的影響
就像如果把一個欄位設定成字元串,但是用起來比較麻煩,排序,查詢走索引等一系列問題
本文轉自 aklaus 51CTO部落格,原文連結:http://blog.51cto.com/aklaus/1717238