Greenplum中的vacuum

2024-01-24 00:38
文章标签 greenplum vacuum

本文主要是介绍Greenplum中的vacuum,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  vacuum,该选项主要是清理数据库表中的垃圾空间。

  对于delete或update操作造成的实际物理空间没有从所对应的表中移除的话,vacuum操作可以将此磁盘释放出来,所以对那些经常性更新的表很有需要来做下vacuum操作。

-- 新建表open.t_ttt(20行数据)
select count(1) from open.t_ttt;
-- 20
select pg_relation_size('open.t_ttt');
-- 得到大小是1120Bytes
delete from open.t_ttt where f_id=2;
-- DELETE 10
select pg_relation_size('open.t_ttt');
-- 大小还是1120Bytes
vacuum open.t_ttt;
-- VACUUM
select pg_relation_size('open.t_ttt');
-- 得到大小是560Bytes

  可以看到执行完vacuum之后空间收缩了。

  该动作会消耗系统一定的资源,引起系统的IO上升,对有一定系统瓶颈来说容易造成堵塞,严重会把GP宕掉,造成数据库瞬断。

  一般不建议vacuum库中全表,通常做法是vacuum指定的表。

  但是在PG中VACUUM的效果并不明显,一般都可认为不回收空间,只有vacuum full才会。

这篇关于Greenplum中的vacuum的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/638031

相关文章

【python 连接 Greenplum】python 连接Greenplum数据库

Python和PostgrelSQL进行交互,需要安装三方库,PostgrelSQL跟mysql 的用法类似 pip install psycopg2 例子: import psycopg2 import psycopg2.extras conn = psycopg2.connect(host='localhost', port=6432, user='postgres', passwo

【0316】Postgres内核之VACUUM (FULL)运行 portal multi query (11)

上一篇文章: 【0315】Postgres内核之VACUUM (FULL)运行 portal query (10) 1. 执行 portal multi query 在【0315】Postgres内核之VACUUM (FULL)运行 portal query (10) 一文中讲解了Postgres内核运行portal查询的实现。 之后通过判断portal->strategy的值(PORTAL_

Greenplum标量查询及常用示例

标量查询是指仅返回单个值的查询,而不是返回多行或多列的结果集。在Greenplum数据库中,标量查询通常用于获取单个值,以供其他查询、计算或条件判断使用。 以下是几个标量查询的示例: 1. 获取表中的最大值: SELECT MAX(column) FROM mytable; 2. 统计表中的行数: SELECT COUNT(*) FROM mytable; 3. 检查某个条件是否满

PostgreSQL vacuum freeze

一、简介   数据库使用 32 位事务号,最大容纳 42 亿左右的事务号,事务号是循环使用的。当前事务号过去的 21 亿事务属于过去的事务号,当前事务号往前的 21亿 属于未来的事务号,未来的事务号对当前事务是不可见的。当事务号处于未来事务时,就会导致该事务不可见(事务 ID 回卷),为了预防此类情况发生,数据库事务号在达到阈值时 autovacuum 会自动冻结(freeze)重置事务 ID

VACUUM 剖析

VACUUM 剖析 为什么需要 Vacuum MVCC MVCC:Multi-Version Concurrency Control,即多版本并发控制。 PostgreSQL 使用多版本并发控制(MVCC)来支持高并发的事务处理,同时保持数据的一致性和隔离性。MVCC 是一种用于管理数据库并发操作的技术,它允许多个事务同时访问同一数据,而不会产生冲突或阻塞。 MVCC 的工作原理 版

Greenplum集群或者Postgresql出现死锁肿么办?

1、Greenplum集群或者Postgresql出现死锁肿么办?   由于Postgresql和Greenplum集群这数据库知识很深的,没有仔细研究,遇到问题真的不知道肿么处理,我遇到死锁,是采取了暴力手段,直接杀锁了。 1 [biehl@cen-gp-master ~]$ sudo su 2 [sudo] password for biehl: 输入密码,看不见的。 3 [root

GreenPlum 开源,大规模并行查询平台

本博文主要介绍 GreenPlum 特点,核心组件以及底层架构 简介 世界上第一个开源,大规模并行数据平台。 GreenPlum 数据库是一个高级的,功能齐全的开源数据平台。它提供了PB级数据量上强大而快速的分析能力。GreenPlum 数据库是专为大数据分析业务设计。在大数据量上提供高性能的查询分析性能。 特点 底层基于PostgreSQL,但是GreenPlum数据库增加了大量并行分析

GreenPlum体系架构

参考《GreenPlum企业应用实战 》 GreenPlum的总体架构图如下所示: 每个部件的功能如下表: master与segment 的关系:

Sqlite3数据库删除后,文件大小不变,使用vacuum命令

设备内存有限,需要清理内存,全部是说使用vacuum命令,但。。。 代码示例: uint8 VacuumDb(sqlite3 *ptStoreDb){char s8sql[512];sqlite3_stmt *ptStat;char *pcErrMsg;if(ptStoreDb == NULL){return 0;}//VACUUM commandmemset(s8sql, 0, 512);

Greenplum 数据库初始化总是出现几个节点实例无法启动的问题

最近搭建GP20台节点环境时,发生初始化总是出现几个节点实例无法启动的问题。折腾两天,才找到问题。 初始化时,设置了最大连接数为100,每台机器运行12个实例,主备就是24个实例,初始化后有一部分实例正常启动,一部分失败。 根据日志找到失败节点目录下的日志,发现失败原因是由于硬件资源问题导致,提示是初始化最大连接数过大。机器的配置都是很高的,会出现这样的问题,很奇怪。 根据