在《高效能mysql》中提到,通常情況下最好指定列為not null,除非真的需要儲存null值。雖然把null 改成not null 對索引的效能並沒有明顯提公升,但可能會出現不必要的麻煩。
測試如下:
create建立表sql語句table
`t1` (
`id`
int(11) not
null
, `name`
varchar(25) not
null
,
primary
key(`id`),
key`idx_name` (`name`)
) engine
=innodb default charset=
utf8;
create
table
`t2` (
`id`
int(11) not
null
, `name`
varchar(25) default
null
,
primary
key(`id`),
key`idx_name` (`name`)
) engine
=innodb default charset=utf8;
表t1
表t2
1.not in、!= 等負向條件查詢在有 null 值的情況下返回空行的結果集
select*from t2 where name !='張三
';
select2.使用 concat 函式拼接時,首先要對各個字段進行非 null 判斷,否則只要任何乙個欄位為空都會造成拼接的結果為 null*from t2 where name not
in (select name from t2 where id!=
1)
select concat("1",null);3.當用count函式進行統計時,null 列不會計入統計
select4、查詢空行資料,用 is nullcount(name) from t2;
select5、null 列需要更多的儲存空間,一般需要乙個額外的位元組作為判斷是否為 null 的標誌位。*from t2 where name is
null;
explain select*from t1 where name ='張三
';
explain select*from t2 where name ='張三
';
MySQL建議列屬性盡量為NOT NULL
除非你有乙個很特別的原因去使用 null 值,你應該總是讓你的字段保持 not null。這看起來好像有點爭議,請往下看。首先,我們要搞清楚 空值 和 null 的概念 1 空值是不占用空間的 2 mysql中的null其實是占用空間的 所謂的null就是什麼都沒有,連 0都沒有,0在字串中是結束符...
為什麼Mysql 資料庫盡量避免NULL?
在mysql中很多表都包含可為null 空值 的列,即使應用程式並不需要儲存null也是如此,這是因為可為null是列的預設屬性。但我們常在一些mysql效能優化的書或者一些部落格中看到觀點 在資料列中,盡量不要用null 值,使用0,1或者其他特殊標識替換null值,除非真的需要儲存null值,那...
為什麼前端盡量少用iframe
從效能上來講,iframe消耗瀏覽器的效能比用div至少多出十幾倍甚至更多。使用較多時,http請求數目較多,而frame和iframe自身載入速度較慢,布局不易修改。最好使用div替代。只知道皮毛,希望大家能有更詳盡的分析。一般使用ajax來獲取資料,如果獲取的資料不在同乙個網域名稱下互相呼叫資料...