成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

mysql - 數據庫設計( scheme 設計 ), 應該極力避免 NULL 嗎?

瀏覽:128日期: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,索引的效率會下降很多。