Mysql 数据库默认值选 ‘‘“ 、Null和Empty String的区别
Mysql 數(shù)據(jù)庫(kù)默認(rèn)值選 ‘’" 、Null和Empty String的區(qū)別
1:空值(’’)是不占用空間的
2: MySQL中的NULL其實(shí)是占用空間的。官方文檔說(shuō)明:
“NULL columns require additional space in the row to record whether their values are NULL. For MyISAM tables, each NULL column takes one bit extra, rounded up to the nearest byte.”
所以 mysql設(shè)計(jì)表時(shí) 建議不要用default NULL
string類型 建議用 ‘’" 或者 Empty String
int類型 建議默認(rèn)給 0
另外一點(diǎn),從不同的項(xiàng)目開發(fā)去分析這個(gè)問(wèn)題:
以前單純做web網(wǎng)頁(yè)端,對(duì)這個(gè)默認(rèn)值設(shè)定問(wèn)題選用null 還是empty string。但是后來(lái)在另外一個(gè)團(tuán)隊(duì)開發(fā)app的時(shí)候,這個(gè)null和empty string的問(wèn)題就尤為突出,因?yàn)槲沂怯胮hp做接口開發(fā),如果一旦出現(xiàn)null的數(shù)據(jù)類型,沒(méi)有處理直接返回去前端,那么無(wú)論是ios還是Android端,如果沒(méi)有處理好這個(gè)空的判斷,要么就直接輸出null,要么程序直接報(bào)錯(cuò)。所有建議設(shè)計(jì)數(shù)據(jù)庫(kù)的時(shí)候默認(rèn)值盡量少用null.
兩者的查詢方式不一樣:NULL值查詢使用is null/is not null查詢,而empty string可以使用=或者!=、<、>等算術(shù)運(yùn)算符,這點(diǎn)算是最主要的區(qū)別了。
對(duì)于myisam引擎,null值占用額外的存儲(chǔ)空間(1bit),空字符串則完全不占用空間。
總結(jié)
以上是生活随笔為你收集整理的Mysql 数据库默认值选 ‘‘“ 、Null和Empty String的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python精要(72)-VMDK操作(
- 下一篇: 详解mysql什么时候不走索引