天天看點

MySQL 表欄位類型選擇

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