PostgreSQL 索引如何引用行?

How do PostgreSQL indexes reference rows?

PG中的索引是存储某种类型的行内部ID,还是存储行的主键?

我推断它一定是一个内部行 ID,因为表不必有 PK。但是,我找不到这个问题的具体答案。

每一行都有一个内部的"address"存储在系统列ctid中(非常类似于Oracle的rowid)。这个ctid值存储在索引中。

手册中有更多详细信息:

如果需要,您可以 select 列:

select ctid, t.*
from your_table t;