IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Greenplum的表膨胀处理 -> 正文阅读

[大数据]Greenplum的表膨胀处理

一、什么是表膨胀

表膨胀是指在一张表的数据文件中积累的自由空间(free space)被旧数据行使用。这些空间已经被之前删除或者不再访问的数据使用。不能做表的维护以重用这些空间,导致表数据文件越来越大,所以表扫描需要更长的时间,导致业务系统效率越来越低。

二、为什么会出现表膨胀

Greenplum数据库的存储实现(MVCC-多版本并发控制)来自于Postgres。根据MVCC的原理,没有办法直接更新数据(更新操作(update)是通过先删除(delete)再插入(insert)实现的),被更新之前的行数据仍然在数据文件中,直到通过使用VACUUM命令使空间被标记为“free”。
一旦VACUUM将被删除的行数据标记为“free space”,这些空间就能够被将来的插入和更新操作使用。在更新操作后,VACCUM操作之前的这段时间,这些空间是没有标记为“free”,因此无法被重新使用,实际上这些空间为“dead space”。

三、表膨胀处理的方式

1、vacuum

vacuum table_name
vacuum可以标记已被删除的行数为’free’,即把数据文件中膨胀的空间(死元组)可以被后续新数据复用。但是如果“dead space”在数据文件末尾的话,会直接释放掉空间。
缺点:vacuum 大多数情况下只会让“dead space”可以被后续新数据复用,并不能真正释放这些空间,即不会减少磁盘占用。
优点:vacuum不会加锁,会占用一定的资源,但不影响业务系统。
比如,不考虑“dead space”在数据文件末端的情况,500g的表处理完300g,物理上磁盘存量没有减少,但是这200g可以被未来的数据复用

2、vacuum full

vacuum full table_name
不论被删除的数据是否处于数据表的末端,这些数据所占用的空间都将被物理的释放并归还于操作系统。之后再有新数据插入时,将分配新的磁盘页面以供使用。
优点:可以减少磁盘占用,并且处理后,业务效率提升会更多。
缺点:运行过程中会产生排他锁,即所有有关此表的操作都会被挂起,直到vacuum full执行完毕。

3、场景选择

vacuum建议场景:vacuum可以保证磁盘存量在一个稳定的值,且开销小,所以定期进行vacuum是很有必要的。需要注意的是,由于还是会有一定的资源占用,建议还是选在一周或一天业务场景少的时段进行。
vacuum full:考虑到其开销大,且存在排他锁,所以针对一些更新删除频繁的大表进行定期的处理,可以释放磁盘存量,而且效率提升比较大。需要注意的是,处理时最好保证业务系统空闲(etl空闲)。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-04-01 23:28:20  更:2022-04-01 23:29:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:39:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码