我在可为空的列上有一个索引,我想选择所有它的值,如下所示:
SELECT e.ename FROM emp e;
在说明计划中,我看到了FULL TABLE SCAN一个提示(即使提示也无济于事)
FULL TABLE SCAN
SELECT e.ename FROM emp e WHERE e.ename = 'gdoron';
确实使用索引…
我用谷歌搜索发现索引中没有空条目,因此第一个查询不能使用索引。
我的问题很简单: 为什么索引中没有空条目?
默认情况下,关系数据库会忽略NULL值(因为关系模型说NULL表示“不存在”)。因此,索引不存储NULL值,因此,如果您在SQL语句中具有空条件,则将忽略相关索引(默认情况下)。
但是您可以解决这个问题,请查看此内容或此文章。