我在一个可为空的列上有一个索引,我想选择它的所有值,如下所示:
选择e.ename
来自emp e;
在解释计划中,我看到一个全表扫描
(即使是提示也没有帮助)
选择e.ename
来自emp e
其中e.ename='gdoron';
是否使用索引
我在谷歌上搜索发现索引中没有空条目,因此第一个查询不能使用索引
我的问题很简单:为什么索引中没有空条目?
默认情况下,关系数据库忽略NULL值(因为关系模型说NULL表示“不存在”)。所以,索引不存储NULL值,所以若SQL语句中有NULL条件,则忽略相关索引(默认情况下)
但是你可以解决这个问题,检查这篇文章或这篇文章