当前位置:网站首页>PG--核心技术--HOT
PG--核心技术--HOT
2022-08-11 11:32:00 【51CTO】
索引更新问题
因为多版本的原因,当PostgreSQL中更新一行时,实际上原数据行并不会被删除,只是插入了一个新行。如果表上有索引,而更新的字段不是索引的键值时,由于新行的物理位置发生了变化,仍然需要更新索引,这将导致性能下降。
引入HOT
为了解决这一问题,PostgreSQL自8.3版本之后引入了一个名为“Heap-Only Tuple”的新技术,简称HOT。使用HOT技术之后,如果更新后的行与原数据行在同一个数据块内时,原数据行会有一个指针,指向新行,这样就不必更新索引了,当从索引访问到数据行时,会根据这个指针找到新行。
HOT的原理
HOT的详细说明见下图,图中表上有一个索引,其中“索引项n”指向某个数据块的第3行。
更新第3行后使用HOT技术,索引项仍然指向原数据行(第3行),而第3行原数据行中有一个指针指向新数据行(第6行)
HOT的使用和配置
注意,如果原先的数据块中无法放下新行就不能使用HOT技术了,即HOT技术中的行之间的指针只能在同一个数据块内,不能跨数据块。所以为了使用HOT技术,应该在数据块中留出较大的空闲空间,其方法是可以把表的填充因子“fillfactor”设置为一个较小值。该参数的含义是插入数据时,表中的空间占用率到达多少后就不再插入数据了,默认值为“100”,表示不预留空间,但对于删除、插入、更新等操作较多的表来说,需要设置一个较低的值,如50%。该参数可以在建表时设置,命令如下
也可以使用ALTER TABLE命令来修改该参数配置
边栏推荐
猜你喜欢
The ceiling-level microservice boss summed up this 451-page note to tell you that microservices should be learned this way
C# Call AutoNavi Map API to obtain latitude, longitude and positioning [Detailed 4D explanation with complete code]
智能恒等于推荐系统
开源汇智创未来 | 软通动力出席开放原子全球开源峰会OpenAtom openEuler分论坛
FS2956A 输入8-120V 用于液晶仪表5V-USB 充电口方案
悠漓带你玩转C语言(详解操作符1)
【黑马早报】抖音否认与头部主播签对赌协议;阿迪达斯CEO承认在中国犯了错;网易云社交App心遇被指涉黄;联通董事长称5G资费比点外卖还便宜
阿里云 Hologres助力好未来网校实时数仓降本增效
Flutter 教程之 Kotlin 多平台与 Flutter,为您的应用选择哪一个
《长津湖》和《三十而已》,不及王一博赚钱?
随机推荐
鸿海董事长刘扬伟:市场对智能手机和其他消费电子产品的需求正在放缓
天花板级微服务大佬总结出这份451页笔记告诉你微服务就该这么学
简单记录openguass_exporter对接prometheus通过grafanai来实现可视化监控
LeetCode69:牛顿迭代法和二分法求解x的平方根
阿里云 Hologres助力好未来网校实时数仓降本增效
闪灯芯片银行塔闪灯IC参数应用
什么是架构基本概念和架构本质
云原生 · 镜像详解
How long does it take to train a neural network, neural network training takes too long
开发者时薪高达1200美元?一文带你走近Move语言的编程魅力!
「开源推荐」一个通用的后台管理系统
pgr_createTopology
4. 继承
『独家』互联网 BAT 大厂 Android高级工程师面试题:174道题目让你做到面试无忧
2. 类与对象——封装
图像识别(八)| 还对全连接层迷迷糊糊?背会一首诗就行了
Through the thermal lens focus on different types of gaussian model
TiSpark 原理之下推丨TiDB 工具分享
The fertile soil cloud innovation plan is coming
黑马瑞吉外卖之分类信息的分页查询