《postgresql指南--内幕探索》第七章 HOT和Index-Only扫描

本文详细介绍了PostgreSQL中的Heap-Only Tuple(HOT)技术和Index-Only Scans。HOT通过减少vacuum操作提高了更新行的效率,而Index-Only Scans则在某些情况下允许直接通过索引访问数据,降低了I/O成本。文章通过实例解释了这两种技术的工作原理及其对性能的积极影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本章介绍与索引扫描相关的两个功能, 即Heap Only Tuple和Index-Only Scans。

Heap Only Tuple (HOT)

HOT是在8.3版中引入的, 当更新的行存储在旧行所在的page时,可以有效地使用索引和表的页。HOT有效的减少了vacuum操作。
源码目录README.HOT描述了HOT的细节。 本章简要介绍了HOT。

更新没有HOT的行

假设表 “tbl” 有两列:“id"和"data”;"id"是"tbl"的主键。

testdb=# \d tbl
                Table "public.tbl"
 Column |  Type   | Collation | Nullable | Default 
--------+---------+-----------+----------+---------
 id     | integer |           | not null | 
 data   | text    |           |          | 
Indexes:
    "tbl_pkey" PRIMARY KEY, btree (id)

表"tbl"有1000个tuples;id为"1000"的最后一个tuples存储在表的第5个page。最后一个tuples指向相应的索引元组,其中的键为"1000",其tid为"(5,1)"。请参阅图1(a)。
在这里插入图片描述

我们考虑如

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值