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

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

mysql - 數(shù)據(jù)庫(kù)設(shè)計(jì)( scheme 設(shè)計(jì) ), 應(yīng)該極力避免 NULL 嗎?

瀏覽:102日期:2022-06-12 15:49:15

問(wèn)題描述

實(shí)際現(xiàn)象

了解到:

NULL 語(yǔ)義不清晰

query 時(shí)不好優(yōu)化

如果表示空值, 可以有其他的替代方式( 邏輯上 )

VARCHAR(100) NOT NULL DEFAULT ’’;

INT NOT NULL DEFAULT 0;

預(yù)期現(xiàn)象

希望能了解在設(shè)計(jì)scheme的時(shí)候, 對(duì)待NULL的態(tài)度( 記得有看過(guò)一篇文章說(shuō)過(guò), 應(yīng)該盡量: NOT NULL DEFAULT XXX)

問(wèn)題解答

回答1:

是,應(yīng)該盡可能避免可為NULL的列,且盡可能顯示設(shè)置默認(rèn)值,尤其是被索引的列。mysql中,null占空間,如果該值被索引,那么其索引無(wú)效。

回答2:

是的,判斷字段不為空的時(shí)候,還要用 is not null,mysql中的NULL其實(shí)是占用空間的,B樹(shù)索引時(shí)不會(huì)存儲(chǔ)NULL值的,所以如果索引的字段可以為NULL,索引的效率會(huì)下降很多。