首页 > 解决方案 > PostgreSQL 性能:NOT NULL 列上的索引是否比 NOT NULL 列快?

问题描述

在包含数千万条记录的生产表中,我们发现我们有一个(索引的)字符串列,在域逻辑中永远不会为 NULL。但是,此列当前在架构中不强制为 NOT NULL。

现在我们想知道:查询索引(允许 NULL)列与索引 NOT NULL 列之间是否存在性能差异?还是真的不重要?在这两种情况下,索引在 Postgres 中(/可以)存储的方式是否不同?

标签: sqlpostgresqlindexingnull

解决方案


不,这完全无关紧要。NULL索引中的值没有特殊处理。唯一的例外是一个UNIQUE索引可以包含几个NULLs,但这对性能没有影响。


推荐阅读