1

我刚刚在我的数据库中发现了一个有趣的部分索引:

CREATE INDEX orders_idx
  ON orders
  USING btree
  (status)
  WHERE status IS NULL;

如您所见,它完全没有选择性,恕我直言完全没有用,还是我遗漏了什么?

4

1 回答 1

0

如果您有按状态过滤的查询为空(如评论中所述)或需要对状态为空的条目运行维护,则此索引可能很有用。

例如,从我曾经从事的一个项目(没有这种类型的索引)中,我有一个保留日志/队列的导入过程。它在启动时将状态设置为排队,在进行中运行,并在完成时将状态设置为完成 - 但如果出现错误则将其设置为 null。这需要清理,因为其他表中的项目不会正确设置为所需的值。我需要定期查询 status 为 null 以诊断特定问题,或者运行清理脚本以使数据库不充满部分导入。

于 2014-03-26T18:33:46.700 回答