假设我有一个items
表,其中一列是color_id
,是colors
表的外键。并非所有项目都有颜色。如果使列可以为空,那么当我在where
子句中引用颜色时,我可能需要使用
where color_id is not distinct from ?
而不是更简单的
where color_id = ?
...如果?
可能为null,则搜索没有颜色的项目。这是一个坏主意吗?我不介意详细说明,但我正在阅读{strong>索引不能为is not distinct from
工作的地方,我的第一个实验证实了这一点。使用is not distinct from
的查询比使用=
的查询花费更长的时间。
最好在colors
中创建一行代表"没有颜色",可能代表id = 0
,然后让items.color_id
代表not null
列?