可空列的索引

gdo*_*ica 7 sql database oracle indexing performance

我有一个可空列的索引,我想选择它的所有值,如下所示:

SELECT e.ename 
FROM   emp e;
Run Code Online (Sandbox Code Playgroud)

在解释计划中,我看到一个FULL TABLE SCAN(甚至一个暗示没有帮助)

SELECT e.ename 
FROM   emp e
WHERE  e.ename = 'gdoron';
Run Code Online (Sandbox Code Playgroud)

使用索引...

我用Google搜索并发现索引中没有空条目,因此第一个查询无法使用索引.

我的问题很简单:为什么索引中没有空条目?

aF.*_*aF. 17

默认情况下,关系数据库忽略NULL值(因为关系模型表明NULL表示"不存在").因此,Index不存储NULL值,因此如果SQL语句中有空条件,则忽略相关索引(默认情况下).

但是你可以suprass此问题,检查文章.

  • 想想看,在索引中它们如何与所有 NULL 区分开来? (2认同)