磨砺技术珠矶,践行数据之道,追求卓越价值

回到上一级页面:PostgreSQL内部结构与源代码研究索引页    回到顶级页面:PostgreSQL索引页

HOT的解释:

如下的日文文档中,有几个图示,解释得比较清晰:

http://www.slideshare.net/ItagakiTakahiro/postgresql-83-update?from_search=11

在update的时候,不在index上建立新的节点,而是通过数据块中老记录指向同块的新记录方式,来减少IO读写操作。

http://www.2ndquadrant.com/static/2quad/media/pdfs/talks/Postgres_Performance_Update83.pdf

Mechanism: Don't store index entries when we
update a row that fits on the same block

不过,似乎这方面的统计信息没有办法得到,目前正在向社区提出问题,等待回答。

另外,这里还有一个mini vacuum的事情:

由于从index->块内旧数据行->块内旧数据行->块内最新数据的链上,

在沿着链表查找数据的过程中,如果发现旧数据行已经没有任何事务在引用,可以顺便进行清理工作,

而用像8.3版本以前那样要等vacuum来进行,故称为 mini vacuum。

最为详尽、权威的介绍来自于此处:

http://www.pgcon.org/2008/schedule/events/105.en.html

它提到,通过HOT,在一定程度上减轻了vacuum 的负担----其实就是被查找数据的时候,随手把“死”数据作掉了。

Prior to HOT, frequent updates on a table would bloat the table and the indexes on it, negatively impacting long-term database performance. While frequent manual or automatic vacuuming could repair the table/index bloat, the same vacuuming caused performance problems by putting additional load on the database. HOT now attempts to address these problems by reclaiming the space used by the old, dead tuples without requiring vacuuming of the table.

其中包含如下文档:

回到上一级页面:PostgreSQL内部结构与源代码研究索引页    回到顶级页面:PostgreSQL索引页

磨砺技术珠矶,践行数据之道,追求卓越价值

PostgreSQL的HOT(Heap-Only Tuples)的更多相关文章

  1. Heap Only Tuples (HOT)

    Introduction ------------ The Heap Only Tuple (HOT) feature eliminates redundant index entries and a ...

  2. PostgreSQL配置文件--资源使用(除WAL外)

    2 资源使用(除WAL外) RESOURCE USAGE (except for WAL) 2.1 内存 Memory 2.1.1 shared_buffers 数字型 默认: shared_buff ...

  3. PostgreSQL数据库结构

    PG数据存储结构分为:逻辑结构和物理存储. 一.逻辑存储结构是:内部的组织和管理数据的方式[逻辑存储结构适用于不同的操作系统和硬件平台] 二.物理存储结构是:操作系统中组织和管理数据的方式. 1.逻辑 ...

  4. zombodb 几点说明

    内容来自官方文档,截取部分 默认es 索引的副本为0 这个参考可以通过修改索引,或者在创建的时候通过with 参数指定,或者通过pg 的配置文件中指定 索引更多的列以为这使用了更多的es 能力 索引的 ...

  5. postgre与mysql区别

    SQL兼容性 PostgreSQL 9.5 兼容 SQL:2011 子集 http://www.postgresql.org/docs/9.5/static/features-sql-standard ...

  6. CMU Database Systems - Query Processing

    Query Model Query处理有三种方式, 首先是Iterator model,这是最基本的model,又称为volcano,pipeline模式 他是top-down的模式,通过next函数 ...

  7. 对PostgreSQL xmin的深入学习

    当PostgreSQL需要insert 一条记录的时候,它会把记录头放入xmin,xmax等字段. xmin的值,就是当前的Transaction的TransactionId.这是为了满足MVCC的需 ...

  8. 在CentOS上编译安装PostgreSQL

    http://my.oschina.net/tashi/blog 第一步:准备阶段 获取必需软件包: CentOS中查看是否安装了某个软件的命令:rpm -qa | grep 软件名.which命令可 ...

  9. 跟我一起读postgresql源码(九)——Executor(查询执行模块之——Scan节点(上))

    从前面介绍的可优化语句处理相关的背景知识.实现思想和执行流程,不难发现可优化语句执行的核心内容是对于各种计划节点的处理,由于使用了节点表示.递归调用.统一接口等设计,计划节点的功能相对独立.代码总体流 ...

随机推荐

  1. LeetCode题解之Rotate Array

    1.题目描述 2.代码 void rotate(vector<int>& nums, int k) { ) return ; && (k / nums.size() ...

  2. d3js layout 深入理解

    D3 layouts help you create more advanced visualisations such as treemaps: D3 layouts帮助您创造更加高级复杂的可视化图 ...

  3. MySQL: OPTIMIZE TABLE: Table does not support optimize, doing recreate + analyze instead

    show create table history;-------------------------- CREATE TABLE `foo` (  `itemid` bigint(20) unsig ...

  4. Error loading XML document: dwz.frag.xml 处理方式

    问题:直接用IE打开index.html弹出一个对话框:Error loading XML document: dwz.frag.xml 方案一(已经验证): 转自:http://blog.csdn. ...

  5. UITabBar设置详解

    UITabBar设置详解 效果图 说明 1. 设置tabBarItem中的图片以及标题 2. 设置标题文本样式 3. 修改tabBar背景色 源码 https://github.com/YouXian ...

  6. [翻译] WPAttributedMarkup

    WPAttributedMarkup https://github.com/nigelgrange/WPAttributedMarkup WPAttributedMarkup is a simple ...

  7. Redis学习---Redis操作之Python连接

    PyCharm下的Redis连接 连接方式: 1. 操作模式 redis-py提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使 ...

  8. 团队开发中,eclipse中安装jre

    团队合作中配置jre时,jre名称应该保持一致,否则不要提交.classpath文件 window-preferences     团队合作中,JRE name一定要一致!

  9. APUE 4.8 umask函数

  10. ZT 80-90年代港台300部电视剧 你看过多少?

    80-90年代港台300部电视剧 你看过多少? [复制链接]     噗噗 738主题 18精华 万家金领 发消息   发表于 2010-4-27 09:01:02 |显示全部楼层 1.(珍珠传奇) ...