文章詳情頁
mysql - 數據庫設計( scheme 設計 ), 應該極力避免 NULL 嗎?
瀏覽:76日期:2022-06-12 15:49:15
問題描述
實際現象了解到:
NULL 語義不清晰
query 時不好優化
如果表示空值, 可以有其他的替代方式( 邏輯上 )
VARCHAR(100) NOT NULL DEFAULT ’’;
INT NOT NULL DEFAULT 0;
預期現象希望能了解在設計scheme的時候, 對待NULL的態度( 記得有看過一篇文章說過, 應該盡量: NOT NULL DEFAULT XXX)
問題解答
回答1:是,應該盡可能避免可為NULL的列,且盡可能顯示設置默認值,尤其是被索引的列。mysql中,null占空間,如果該值被索引,那么其索引無效。
回答2:是的,判斷字段不為空的時候,還要用 is not null,mysql中的NULL其實是占用空間的,B樹索引時不會存儲NULL值的,所以如果索引的字段可以為NULL,索引的效率會下降很多。
排行榜
