当前位置: 首页 > news >正文

学习制作网页的网站网站源码 照明

学习制作网页的网站,网站源码 照明,网站主页模板图片,财务软件开发公司简介专栏内容#xff1a;postgresql内核源码分析个人主页#xff1a;我的主页座右铭#xff1a;天行健#xff0c;君子以自强不息#xff1b;地势坤#xff0c;君子以厚德载物#xff0e; 目录 前言 表数据膨胀的由来 什么时候产生膨胀 首先是update 还有delete 如何消…  专栏内容postgresql内核源码分析个人主页我的主页座右铭天行健君子以自强不息地势坤君子以厚德载物 目录 前言 表数据膨胀的由来 什么时候产生膨胀 首先是update 还有delete 如何消除膨胀 结尾 前言 本文是基于postgresql 15的代码进行分析解读演示是在centos8系统上进行。 在我们使用postgresql数据库时总会产生一些数据膨胀导致查询变慢索引失效为什么会有数据膨胀呢产生后我们怎么做才能让数据库恢复正常呢 表数据膨胀的由来 话说数据库的四大特性ACIDpostgresql采用了一种MVCC(Multi Version Concurrency Control)机制来保证事务的原子性和隔离性。 那什么是MVCC呢简单说就是利用事务号递增性来标识tuple的新旧版本达到不同事务内看到的tuple隔离下面我们用一个例子来看一下 查看一张表的当前数据 postgres# select ctid,xmin,xmax,id from t1;  ctid  | xmin | xmax | id -----------------------  (0,1) | 1699 |    0 |  1  (0,2) | 1700 |    0 |  2 (2 rows) 我们在一个事务中执行更新并回滚 postgres*begin; BEGIN postgres*# select txid_current();  txid_current --------------          1702 (1 row) postgres*update t1 SET namea where id1; UPDATE 1 postgres*rollback; ROLLBACK 我们在插入数据 insert into t1(id) values(3); insert into t1(id) values(4);   postgres# select ctid,xmin,xmax,id from t1;  ctid  | xmin | xmax | id -----------------------  (0,1) | 1699 | 1702 |  1  (0,2) | 1700 |    0 |  2  (0,4) | 1703 |    0 |  3  (0,5) | 1704 |    0 |  4 (4 rows) 发现ctid为03的位置被跳过了因为有一个id1的tuple版本占了只是它可见性判断时被判定为不可见所以我们看不到它但确实是占用了一个位置。 什么时候产生膨胀 那些常见情况下为产生多版本数据呢 首先是update 我们来看一下update的演示 我们update一条数据后它的位置变到了最后说明又一条旧版本详细表的update代码解析详见我的专栏 postgres# update t1 SET namea where id1; UPDATE 1 postgres# select ctid,xmin,xmax,id from t1;  ctid  | xmin | xmax | id -----------------------  (0,2) | 1700 |    0 |  2  (0,4) | 1703 |    0 |  3  (0,5) | 1704 |    0 |  4  (0,6) | 1705 |    0 |  1 (4 rows) 还有delete 这里不会产生多版本但是delete后tuple并不会从表里真正删掉而是打了一个标记这样做的目的其它和多版本是一致的因为可能还有其它事务在引用。 下面我们看一下例子 postgres# delete from t1 where id 1; DELETE 1 postgres# select ctid,xmin,xmax,id from t1;  ctid  | xmin | xmax | id -----------------------  (0,2) | 1700 |    0 |  2  (0,4) | 1703 |    0 |  3  (0,5) | 1704 |    0 |  4 (3 rows) postgres# insert into t1(id) values(5); INSERT 0 1 postgres# select ctid,xmin,xmax,id from t1;  ctid  | xmin | xmax | id -----------------------  (0,2) | 1700 |    0 |  2  (0,4) | 1703 |    0 |  3  (0,5) | 1704 |    0 |  4  (0,7) | 1707 |    0 |  5 (4 rows) 我们delete后又insert发现空闲06没有被利用而是从07开始 如何消除膨胀 postgresql在运行过程中采用了两种方式 一是页面裁剪; 二是autovacuum; 那它们是如何做的呢请看本专栏内容。 结尾 作者邮箱studysenllang.onaliyun.com 如有错误或者疏漏欢迎指出互相学习。 注未经同意不得转载
http://www.hkea.cn/news/14578516/

相关文章:

  • 视频剪辑制作公司手机百度关键词优化
  • 网站建设综合实训心得网站开发的国内外现状
  • 学校建设服务网网站建设方案项目书jquery 上传wordpress
  • ps设计网站首页界面工商企业信息公示系统
  • 商务网站开发实验报告北京纪念册设计制作
  • 网站在哪里备案信息企业网络拓扑图及说明
  • 网站备案的时候可以做网站吗万网主机网站建设视频
  • 哪个网站的地图可以做分析图东莞微信小程序开发公司报价
  • 做网站的几个必要步骤wordpress配置数据库
  • 网站建设成本计划安阳信息网
  • 常州北京网站建设凡科网站建设是免费的吗
  • 站内免费推广有哪些重庆软件外包公司
  • 只做硬件网站aso优化方案
  • 网站建设a2345公司网站做百度广告如何报税
  • 南通市网站建设我的完网页制作基础教程第二版课后题
  • 做网站程序怎么写wordpress 主题函数生成
  • 英国做电商网站有哪些个人网站空间申请
  • 网站色彩心理centos7 wordpress网站
  • 做网站图片格式建筑设计集团
  • 江山做网站视觉传达设计培训机构有哪些
  • 广州网站设计公司排名门户网站建设工作会议
  • 大连网站运营制作方案怎么注册网站挣流量
  • yy怎么一直在模板相关信息圆柱钢模板优势是什么?企业网站建设模板和定制化有什么区别呢?拼命加载中做直播网站多少钱
  • 广州网站开发定制设计建网站买完域名后怎么做
  • 天津百度整站优化服务动漫制作专业有本科吗
  • 网站定制要花多少钱财经网站建设
  • 做网站 哪些公司安庆网站建设公司简
  • 泰安高新区建设局网站做国外网站衣服码数要怎么写
  • 建立什么网站深圳网站维护
  • 建设商务网站过程功能性的网站归档系统