当前位置: 首页 > 面试题库 >

可为空的列的索引

田修为
2023-03-14
问题内容

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

SELECT e.ename 
FROM   emp e;

在说明计划中,我看到了FULL TABLE SCAN一个提示(即使提示也无济于事)

SELECT e.ename 
FROM   emp e
WHERE  e.ename = 'gdoron';

确实使用索引…

我用谷歌搜索发现索引中没有空条目,因此第一个查询不能使用索引。

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


问题答案:

默认情况下,关系数据库会忽略NULL值(因为关系模型说NULL表示“不存在”)。因此,索引不存储NULL值,因此,如果您在SQL语句中具有空条件,则将忽略相关索引(默认情况下)。

但是您可以解决这个问题,请查看此内容或此文章。



 类似资料:
  • 问题内容: 我在SQL Server 2008上看到一些奇怪的性能问题,其中包含具有空间索引的可为空的地理位置列。每个空值都存储为空间索引内的根节点。 例如,一个表中有5000000个地址,其中存储了4000000个坐标。 每次查询索引时,我都必须扫描每个根节点,这意味着我必须扫描1 000 001级0节点。(所有有效坐标的1个根节点+ 1M空值) 我找不到文档中提到的内容,也看不到为什么如果索引

  • 我有一个方法,它接受一个内部有的对象: MatchData k可以是null,有时k.getWatchListDetail()也可以是null。 我需要检查两种情况。首先,如果它能抛出NPE。 上面的实现可以做到这一点,但我尝试使用或带有链接的流,所以我可以在一行链接中完成。

  • 问题内容: 我想将表列更改为可为空。我用过了: 这会导致出现错误。正确的语法是什么? 问题答案: 假设(基于您之前的问题): 用您的实际数据类型替换。

  • 看起来很简单,但是,如何初始化 Kotlin 的以清空? 我可以用这种方式破解它,但我肯定有更简单的方法:

  • 我有返回给我一些JSON后端。 我将其解析为我的类: 然后我从服务器(使用rxJava)检索数据,没有任何错误。但是我预料到了一个错误,因为我认为我应该做这样的事情(以防止GSON转换器错误,因为在我的JSON响应中不存在): 在从后端接收数据并将其解析到带有构造函数的SomeData类(不带def值)之后,notNullableValue的值==NULL。 据我所知,在Kotlin中不是可空值可

  • 问题内容: 您如何编写SELECT语句,该语句仅返回某列的值为空的行? 问题答案: 您的意思是: ?