PostgreSQL是否索引空值?

jos*_*inm 1 postgresql

如果我有这样的表:

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

假设我在名称和价格上创建了​​一个索引,但是数据库在某些行中为名称和价格提供了一堆空值。PostgreSQL是否自动跳过对这些行建立索引?

Lau*_*lbe 5

不,NULL值也会被索引。

您还可以使用索引来加快条件,例如

WHERE col IS NULL
Run Code Online (Sandbox Code Playgroud)

Oracle用户可能会感到惊讶的是,您可以在唯一索引中包含几行带有NULL的行。但这是有道理的,因为NULL = NULL事实并非如此。