mysql - 为什么不推荐用tinyint?
迷茫
迷茫 2017-04-17 13:09:47
0
5
989

我们做的一个项目,把建表的sql语句发给DBA审核,DBA提出了几个意见,其中一条是不建议使用tinyint字段,那个字段type的值可能是1或者2,所以我们用tinyint,以前都是这样用啊。

为什么DBA不推荐使用tinyint呢?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回覆(5)
大家讲道理

各有各的想法,我比較建議用tinyint,它只佔用一個字節,使用enum不靈活,比如定義了1是男,2是女,如果我想顯示1是男人, 2是女人,就不方便了。

而在MYSQL上,是不建議用NULLNULL是佔用四個字符,記錄多了,這個是不必要的損耗,查詢的時候,where field is null 或者field is not null,這樣的查詢,效率也不是很高的,把字段設為default '',這樣可以where field = '' or field != '',或者直接不允許為空NOT NULL

伊谢尔伦

半吊子DBA唄,可能不知道從哪本書上看來的東西,我們公司DBA還不允許字段為NULL呢,更奇葩的都有。

這和當初C語言程式設計不允許用goto一樣,半吊子「專家」

大家讲道理

type 用 1,2 本身就不是好的設計。時間一久,總是需要翻閱程式碼才知道意義。使用 enum 類型,並給每個類型一個合適的名字會好很多。

但是如果這個欄位需要關聯查詢,那麼不建議使用,效能會有比較嚴重的衰減。

左手右手慢动作

說java連mysql的時候,不認識tinyint,只辨識0和1

大家讲道理

用tinyint挺合理的。別聽DBA瞎說。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板