2012年10月24日 星期三

MySql筆記


欄位預設值 null 或 empty string?

如何提高where column is null的效率

摘要:

欄位內容若是 null ,不會有索引。所以使用 where column is null 查詢時,會全表掃描。相對來說, where column is not null 可以使用索引,就會快很多。因此,對於會使用到索引的欄位,可以盡量以 empty string 代替。 但是如果不會用到索引,用 null 就沒關係。

這裡提到:「如果一个字段允许为null的话,在索引里面会专门增加一个字节来表示这个字段是否为null,建议还是别用null了,用null感觉没有必要」不瞭,待查。


多表結合與 NULL、NOT EXISTS

NOT IN、JOIN、IS NULL、NOT EXISTS效率对比 


摘要:

语句一:select count(*) from A where A.a not in (select a from B)
语句二:select count(*) from A left join B on A.a = B.a where B.a is null
语句三:select count(*) from A where not exists (select a from B where A.a = B.a)
以上三句完成的效果相同。第一句效率比較好,第三句跟第一句差不多,第二句效率最差。

沒有留言:

張貼留言