首頁  >  問答  >  主體

mysql - 資料庫設計( scheme 設計 ), 應該盡力避免 NULL 嗎?

實際現象

了解到:

  1. NULL 語意不清晰

  2. query 時不好優化

  3. 如果表示空值, 可以有其他的替代方式( 邏輯上 )

    • VARCHAR(100) NOT NULL DEFAULT '';

    • #INT NOT NULL DEFAULT 0;

#預期現象

  1. 希望能了解在設計scheme的時候, 對待NULL的態度( 記得有看過一篇文章說過, 應該盡量: NOT NULL DEFAULT XXX)

#
仅有的幸福仅有的幸福2682 天前660

全部回覆(2)我來回復

  • 巴扎黑

    巴扎黑2017-05-18 10:56:25

    是,應該盡可能避免可為NULL的列,並且盡可能顯示設定預設值,尤其是被索引的欄位。 mysql中,null佔空間,如果該值被索引,那麼其索引無效。

    回覆
    0
  • 某草草

    某草草2017-05-18 10:56:25

    是的,判斷欄位不為空的時候,還要用is not null,mysql中的NULL其實是佔用空間的,B樹索引時不會儲存NULL值的,所以如果索引的欄位可以為NULL,索引的效率會下降很多。

    回覆
    0
  • 取消回覆