資料庫欄位非空(null的缺點)

2021-09-07 18:02:57 字數 630 閱讀 3839

上週工作中,遇到資料庫字段是否設為空的問題。

資料庫建表時,對於一些可填可不填的字段,我們盡量把他設定為非空,這種做法:1.可提高效能,2.可在很大

程度上避免空指標一類的問題。具體的好處頗多。

1.節省空間。

大體看上去,好像設定可以為空的時候更節省空間,但實際上,他比not null要多占用乙個bit的空間,用來判

斷該字段是否為空。

2.nullpointerexception

如前面所說,查詢時,可以一定程度上減少nullpointerexception,後期開發出現錯誤時,更好排查(畢竟空指標

是個比較令人頭疼的問題)。

3.減少因空值出現的計算錯誤等

比如:count(),遇到null值時,這條記錄不會計算在內;concat(a,null)結果為null等。

4.索引

引用到null,索引會失效。還看到乙個說法:空更新到非空時,會引起索引**(這句話不是很理解,有大佬看到麻

煩幫忙解釋一下~)

5.使用!=, not in的情況

not null的好處這麼多,那麼為什麼這麼多程式設計師還是在用null呢,個人分析,可能跟我一樣,平時建表的時候並

沒有考慮那麼多,not null

原文:

將空值轉換為資料庫欄位的NULL形式

size medium 將空 或null值的字串轉換為空欄位 傳入的引數 public static object getsqlnull object obj else 將值型別 整型 浮點型 decimal型 boo型 可空型別 nullable泛型結構體 轉換為空欄位 傳入的引數 public ...

資料庫中的NULL(空值)

往往很多人都認為空值與空白或0值是一樣的,至少我在今天以前是這麼認為的,其實空值並不與空白和0值是一回事。null值表示數值未知。沒有兩個相等的空值,比較兩個空值或空值和任意乙個數比較返回的均是未知 下面有以下從sql 聯機叢書中的關於空值的資訊 1 若要測試查詢中的空值,在where 子句中使用i...

資料庫設計字段 null備註

在工作中,設計資料庫難免會出現各種缺陷,例如產生null欄位,這種缺陷有時候很有可能造成一些陷阱 例如 1.在利用not in查詢時無論在mssql還是mysql中都會產生資料庫不準確的資訊。2.大量浪費空間字段,造成資料庫的空間浪費 3.如果字元型的東西,最好設計為 字串,因為在查詢的時候 str...