gpt4 book ai didi

postgresql - PostgreSQL 索引如何处理 MVCC

转载 作者:行者123 更新时间:2023-11-29 11:53:10 25 4
gpt4 key购买 nike

在 PostgreSQL 中,元组的每次更新都会创建新的元组版本。所以在一段时间内,同一个元组可能有很多版本,不同的交易可以看到不同版本的元组(使用可见性规则)

索引在交易完成前更新。这如何与 SI 一起使用?

那么当一个事务更新元组然后索引条目更新以指向新版本的元组时?

最佳答案

由于 PostgreSQL 通过同时在表中保留一行的多个版本来实现 MVCC,因此它还为单行的不同版本保留多个索引条目(有时这可以通过 < em>heap-only tuples 如果在更新期间未修改索引条目并且更新的行与原始版本位于同一表 block 中)。

可见性信息不存储在索引中,因此要在索引扫描期间找到正确的行版本,必须检查所有这些索引条目的表条目(有时如果索引 block 已知可以避免这种情况)仅包含对所有人可见的条目;这是一个仅索引扫描)。

在 autovacuum 期间,旧的索引条目与旧的表条目一起被删除。

关于postgresql - PostgreSQL 索引如何处理 MVCC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43581810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com