首頁  >  問答  >  主體

mysql - 为什么不推荐用tinyint?

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

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

迷茫迷茫2742 天前919

全部回覆(5)我來回復

  • 大家讲道理

    大家讲道理2017-04-17 13:11:47

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

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

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 13:11:47

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

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

    回覆
    0
  • 大家讲道理

    大家讲道理2017-04-17 13:11:47

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

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

    回覆
    0
  • ringa_lee

    ringa_lee2017-04-17 13:11:47

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

    回覆
    0
  • 大家讲道理

    大家讲道理2017-04-17 13:11:47

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

    回覆
    0
  • 取消回覆