给出一个表格,例如:
id name emailed_at
1 Foo 2018-01-01
2 Bar NULL
是否有必要向emailed_at
添加索引以进行高效SELECT * FROM people WHERE emailed_at IS NULL
查询?
更新: 实际的表有大约12列,数十万行,只有最近的(〜1天)记录在该字段中应该为NULL。
答案 0 :(得分:3)
对于两行,根本没有性能问题。对于大型表,索引会有所帮助。 IS NULL
与任何其他“平等”比较相同。它可以利用索引。
索引的好处是当表跨越多个(多个?)数据页时。索引通常会减少需要处理的数据页数。如果很多emailed_at
记录都是NULL
(例如在您的示例中为50%),那么任何给定页面可能会有NULL
个值 - 并且索引要少得多是有用的。