MySQL字段的屬性應該儘可能設置爲NOT NULL

數據庫建表時,對於一些可填可不填的字段,咱們應該儘可能把它設置爲 NOT NULL。這種作法便可以提升性能,又能夠在很大程度上避免空指針類的問題,好處頗多。數據庫

1.節省空間性能

NULL 列須要更多的存儲空間:須要一個額外字節做爲判斷是否爲 NULL 的標誌位。學習

2.空指針優化

查詢時,能夠在必定程度上減小 NullPointerException。指針

3.減小由於空值而出現的計算錯誤索引

若是有 Null column 存在的狀況下,count(NULL column) 須要格外注意,NULL 值不會參與統計。io

4.索引效率

含有空值的列很難進行查詢優化,並且對錶索引時不會存儲 NULL 值的。因此若是索引的字段能夠爲 NULL值,索引的效率會降低。由於它們使得索引、索引的統計信息以及比較運算更加複雜。統計

應該用0、一個特殊的值或者一個空串代替 NULL值。總結

5.使用 != ,NOT IN 的狀況

NOT IN 、!= 等負向條件查詢在有 NULL 值的狀況下,返回永遠爲空結果,查詢容易出錯。

 

以上僅是本人最近學習所作的總結和思考,有不對的地方歡迎指正。

相關文章
相關標籤/搜索