PostgreSQL 是否索引空值?

jos*_*inm 7 postgresql index null

如果我有一张像这样的桌子:

Food
-----------------
name | price | x
Run Code Online (Sandbox Code Playgroud)

假设我在 name 和 price 上创建了一个索引,但是数据库在某些行中为 name 和 price 提供了一堆空值。PostgreSQL 会自动跳过索引这些行吗?我听说这种行为可能在以后的版本中有所改变。

Eva*_*oll 9

至少从 PostgreSQL 8.3 开始,PostgreSQLNULL使用索引上的位图进行索引。这意味着“是”它已编入索引。除了它需要一点,而不是一个字节[s]。就 btree 索引使用非NULL值而言,没有速度优势。它会像您期望的那样工作。

龙在这里:有关更多信息,请参阅此,