Mysql字段屬性應該盡量設置為not null


除非你有一個很特別的原因去使用 NULL 值,你應該總是讓你的字段保持 NOT NULL。這看起來好像有點爭議,請往下看。

所謂的NULL就是什么都沒有,連\0都沒有,\0在字符串中是結束符,但是在物理內存是占空間的,等於一個字節,而NULL就是連這一個字節都沒有。在數據庫里是嚴格區分的,任何數跟NULL進行運算都是NULL, 判斷值是否等於NULL,不能簡單用=,而要用IS NULL關鍵字。

 

數據庫的字段ID設為NOT NULL, 僅僅說明該字段不能為NULL, 也就是說只有在
INSERT INTO table(ID) VALUES(NULL);
這種情況下數據庫會報錯,而
INSERT INTO table(ID) VALUES( ‘ ‘);
這不能說明是NULL, 數據庫系統會根據ID設的缺省值填充,或者如果是自增字段就自動加一等缺省操作。


盡量避免NULL:應該指定列為NOT NULL,除非你想存儲NULL。在MySQL中,含有空值的列很難進行查詢優化,而且對表索引時不會存儲NULL值的,所以如果索引的字段可以為NULL,索引的效率會下降很多。因為它們使得索引、索引的統計信息以及比較運算更加復雜。你應該用0、一個特殊的值或者一個空串代替空值。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM