上週工作中,遇到資料庫字段是否設為空的問題。
資料庫建表時,對於一些可填可不填的字段,我們盡量把他設定為非空,這種做法: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...