PostgreSQL是否索引空值?

8
如果我有一张表格如下所示:
Food
-----------------
name | price | x

假设我在名称和价格上创建了索引,但是数据库中某些行的名称和价格都有大量空值。PostgreSQL会自动跳过这些行的索引吗?


尝试插入空值并检查是否已索引? - Jacob H
可能是可空列的索引的重复问题。 - teppic
请不要进行交叉发布。此问题已在这里提问和回答:https://dba.stackexchange.com/questions/210292 - user330315
1个回答

11

NULL值也被索引。

您还可以使用索引来加速带有条件的查询,例如

WHERE col IS NULL

可能会让Oracle用户感到惊讶的是,您可以在唯一索引中有多行带有NULL值。但这是有道理的,因为NULL = NULL不成立。


这样的索引能在LEFT JOIN查询中使用吗? - Klesun
1
如果你想知道是否可以使用索引来识别外连接生成的NULL,答案是不行。这些NULL在表中不存在,因此无法进行索引。但是索引可以加速其他方面的连接。 - Laurenz Albe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接