PostgreSql HOT 技术

摘自唐成的《PostgreSQL修炼之道:从小工到专家(第2版)》。

一、概述

  因为多版本的原因,当 PostgreSQL 中更新一行时,实际上原数据行并不会被删除,只是插入了一个新行。如果表上有索引,而更新的字段不是索引的键值时,由于新行的物理位置发生了变化,仍然需要更新索引,这将导致性能下降,为了解决这一问题,PostgreSQL 自 8.3 版本之后引入了一个名为“Heap-Only Tuple”的新技术,简称 HOT。

二、原理

  使用 HOT 技术之后,如果更新后的行与原数据行在同一个数据块内时,原数据行会有一个指针,指向新行,这样就不必更新索引了,当从索引访问到数据行时,会根据这个指针找到新行。
  HOT 的详细说明见下图,图中表上有一个索引,其中“索引项 n”指向某个数据块的第3行。

在这里插入图片描述

  更新第3行后使用HOT技术,索引项仍然指向原数据行(第3行),而第3行原数据行中有一个指针指向新数据行(第6行),见下图:

在这里插入图片描述

三、使用示例

  原先的数据块中无法放下新行就不能使用 HOT 技术了,即 HOT 技术中的行之间的指针只能在同一个数据块内,不能跨数据块。所以为了使用 HOT 技术,应该在数据块中留出较大的空闲空间,其方法是可以把表的填充因子“fillfactor”设置为一个较小值。该参数的含义是插入数据时,表中的空间占用率到达多少后就不再插入数据了,默认值为“100”,表示不预留空间,但对于删除、插入、更新等操作较多的表来说,需要设置一个较低的值,如50%。该参数可以在建表时设置,命令如下:

CREATE TABLE mytest01(id int primary key, col2 text, col3 text, col4 text) WITH (fillfactor=50);

也可以使用ALTER TABLE命令来修改该参数配置:

ALTER TABLE mytest01 SET (fillfactor=50);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/200681.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode题库(数据库合集)_ 难度:中等

目录 难度:中等1.股票的资本损益2. 当选者3. 页面推荐4. 2016年的投资5. 买下所有产品的人6. 电影评分6. 确认率7. 按分类统计薪水8. 餐馆营业额的变化增长8. 即时食物配送 ①9. 至少有5名直系下属的经理10. 游戏玩法分析11. 好友申请:谁有最多的好友12.…

Oracle官网 账号及密码 -- 笔记

亲测有效: 账户:3028064308qq.com 密码:OraclePassword123! 引用: Oracle官网 账号及密码_oracle账号-CSDN博客 如有失效,请帮忙留言,及时删除!

Qlik 成为网络犯罪的焦点

研究人员警告说,Cactus 勒索软件组织正在利用 Qlik Sense 数据可视化、探索和监控解决方案中的关键漏洞来获得对企业网络的初始访问权限。 今年八月下旬,Qlik Sense 开发人员 针对影响 Windows 版本平台的两个关键漏洞发布了补丁 。 其中一个漏洞 CVE-…

图数据库知识点9 | 大数据框架与图数据架构异同

开门见山,直奔主题,接续前面的知识点: 【图数据库知识点1|图数据库与关系型数据库的区别?】 【图数据库知识点2 | 图思维方式】 【图数据库知识点3 | 图数据库解决了什么问题?】 【图数据库知识点4 | 图计算与图数…

基于Echarts的大数据可视化模板:智慧交通管理

目录 引言智慧交通管理的重要性ECharts在智慧交通中的作用智慧交通管理系统架构系统总体架构数据收集与处理Echarts与大数据可视化Echarts库以及其在大数据可视化领域的应用优势开发过程和所选设计方案模板如何满足管理的特定需求模板功能与特性深入解析模板提供的各项功能模板…

javaScript(二):javaScript基础语法

文章目录 1、javaScript变量定义2、JavaScript五种数据类型3、JavaScript常用运算符3.1、算术运算符3.2、赋值运算符3.3、比较运算符3.4、逻辑运算符 1、javaScript变量定义 定义变量 ES5定义变量 var 变量名 变量值;ES6定义变量 let 变量名 变量值; const 常量名 常量值;…

java面试题4

1.什么是Java中的多态性(polymorphism)? 答案:多态性是指同一个方法调用可以在不同的对象上产生不同的行为。它可以通过方法重写和方法重载来实现。 2.Java中的异常处理机制是什么? 答案:Java中的异常处理…

uniapp实现微信小程序pc端需求:双击表格行跳转详情,编辑完返回,表格滚动定位到之前选择的表格行

需求&#xff1a;实现双击表格行跳转详情编辑页面&#xff0c;编辑完返回时定位到之前选择的表格行 1.修改了uniapp官方组件库uni-table中的uni-tr的源码&#xff0c;添加click事件&#xff0c;添加<slot name"scroll"></slot>插槽 <block><sl…

【Linux知识点汇总】02 软件包管理器YUM与RPM到底用哪个?

RPM&#xff08;Red Hat Package Manager&#xff09; RPM是一种在基于Red Hat的Linux发行版&#xff08;如Red Hat Enterprise Linux&#xff08;RHEL&#xff09;&#xff0c;CentOS&#xff0c;Fedora等&#xff09;中使用的软件包管理系统&#xff0c;旨在简化在系统上安装…

2023美图创造力大会开幕,美图发布AI视觉大模型4.0

12月5-6日&#xff0c;主题为“未来AI设计”的美图创造力大会&#xff08;Meitu Creativity Conference&#xff0c;简称MCC&#xff09;在厦门举行。 本届大会由美图公司与站酷联合举办&#xff0c;聚焦于设计师生态和AI设计趋势。大会现场发布《2023年度AI设计实践报告》&am…

JSON 语法详解:轻松掌握数据结构(下)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息

文章目录 摘要1. 查询CPU使用率命令&#xff1a;top -bn1 | grep \"Cpu(s)\" | awk {split($0,arr,\" \");print 100-arr[8]}2. 查询内存命令&#xff08;单位&#xff1a;G&#xff09;&#xff1a;top -bn1 | grep \"KiB Mem\" | awk {split($…

学生档案管理系统设计

摘要 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生档案信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量…

CoreDNS实战(四)-编译安装External Plugins

1 External Plugins概述 coredns官方对于插件的分类基本可以分为三种&#xff1a;Plugins、External Plugins和其他。其中Plugins一般都会被默认编译到coredns的预编译版本中&#xff0c;而External Plugins则不会。官方的文档对外部插件的定义有着明确的解释&#xff0c;主要…

使用 javascript 模拟 git diff 命令实现文本文件差异比较

diff.html&#xff1a; <!DOCTYPE html> <html> <head><title>文件比较</title><meta charset"UTF-8"> </head> <body> <h1>文件比较</h1> <form><label for"file1">版本1&…

第十五届蓝桥杯模拟赛B组(第二期)C++

前言&#xff1a; 第一次做蓝桥模拟赛的博客记录&#xff0c;可能有很多不足的地方&#xff0c;现在将第十五届蓝桥杯模拟赛B组&#xff08;第二期&#xff09;的题目与代码与大家进行分享&#xff0c;我是用C做的&#xff0c;有好几道算法题当时自己做的也是一脸懵&#xff0c…

一键抠图1:Python实现人像抠图 (Portrait Matting)

一键抠图1&#xff1a;Python实现人像抠图 (Portrait Matting) 目录 一键抠图1&#xff1a;Python实现人像抠图 (Portrait Matting) 1. 项目介绍 2. 抠图算法 3. Matting数据集 4. MODNet模型 (1) 项目安装 (2) 数据集说明 (3) MODNet模型 5. Demo测试效果 6. 源码下载…

初级数据结构(一)——顺序表

文中代码源文件已上传&#xff1a;数据结构源码 1、顺序表的特点 1.1、数组 现实中数据记录一般都记录在表格中&#xff0c;如进货单、菜单等&#xff0c;它们的最大特点就是有序。表述中可以用第一项、第二项、第 n 项来描述表格中某个数据或者某串数据。在 C 语言中&#…

pytorch学习3-torchvisin和Dataloader的使用

系列文章目录 pytorch学习1-数据加载以及Tensorboard可视化工具pytorch学习2-Transforms主要方法使用pytorch学习3-torchvisin和Dataloader的使用pytorch学习4-简易卷积实现pytorch学习5-最大池化层的使用pytorch学习6-非线性变换&#xff08;ReLU和sigmoid&#xff09;pytorc…

开启三层交换机DHCP服务

二层交换机上不需要配置任何东西&#xff0c;只需要在pc机上开启dhcp服务&#xff0c;配置好LSW1后就可以自动获取到IP地址。 sys Enter system view, return user view with CtrlZ. [Huawei]sys sw1 [sw1]dhcp enable Info: The operation may take a few seconds. Please wai…