欄位預設值 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)
以上三句完成的效果相同。第一句效率比較好,第三句跟第一句差不多,第二句效率最差。
沒有留言:
張貼留言