PostgreSQL利用pg_repack插件解决表膨胀

文章介绍了在PostgreSQL环境中安装pg_repack插件的步骤,包括使用YUM安装依赖、解压安装包、编译和安装。接着,通过创建表和模拟数据膨胀,展示了如何使用pg_repack处理表膨胀,包括VACUUMFULL和添加主键的方法。
摘要由CSDN通过智能技术生成

安装pg_repack插件

[root@localhost local]# yum install gcc postgresql-devel postgresql-static zlib-devel readline-devel -y

把pg_repack-master.zip安装包传到/tmp下解压并给postgres权限

[root@localhost tmp]# chown -R postgres. pg_repack-master

编译安装 

[postgres@localhost tmp]$ cd pg_repack-master/

[postgres@localhost pg_repack-master]$ make

 

[postgres@pghost1 pg_repack-master]$ make install

 

[postgres@pghost1 pg_repack-master]$ pg_repack --version

创建表

postgres=#  create table tmp as select generate_series(1,1000000)::int id,'text'::varchar(100) info;

postgres=# create index idx1 on tmp (id);

postgres=# \dt+ tmp

膨胀

postgres=# update tmp set info='aaa';

postgres=# create extension pg_repack ;

法一:处理表膨胀:

vacuum full tmp;

法二:

添加主键

postgres=# alter table tmp add primary key(id);

[postgres@localhost pg_repack-master]$ pg_repack  --no-superuser-check --echo --no-order -h 192.168.2.15 -p 5432 -d postgres -U postgres --table public.tmp

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
pg_class是postgresql中的一个系统,用于存储数据库中的所有关系(、视图、序列、索引等)的元数据信息。pg_class的结构如下: 列名 | 数据类型 | 描述 --- | --- | --- relname | name | 关系的名称(名、视图名、序列名等) relnamespace | oid | 关系所属的命名空间(pg_namespace的oid) reltype | oid | 关系的类型(pg_type的oid) reloftype | oid | 如果关系是一个复合类型的,则为该类型的oid;否则为0 relowner | oid | 关系的所有者(pg_authid的oid) relam | oid | 关系所用的存储引擎(pg_am的oid) relfilenode | oid | 关系在磁盘上的文件节点号 reltablespace | oid | 关系所在的空间(pg_tablespace的oid) relpages | integer | 关系占用的磁盘页数 reltuples | float4 | 关系中的行数 relallvisible | integer | 用于热备的可见性信息 reltoastrelid | oid | 如果关系有TOAST,则为TOAST的oid;否则为0 relhasindex | boolean | 关系是否有索引 relisshared | boolean | 关系是否是共享的 relpersistence | "char" | 关系的持久性(p-永久,t-临时,u-未知) relkind | "char" | 关系的类型(r-普通,i-索引,S-序列,v-视图,m-物化视图,c-复合类型,t-函数,f-标量函数,p-过程) relnatts | smallint | 关系中的列数 relchecks | smallint | 关系中的CHECK约束数 relhasoids | boolean | 关系是否有OID列 relrowsecurity | boolean | 是否启用了行级别安全 relforcerowsecurity | boolean | 是否强制启用行级别安全 通过查询pg_class,可以获取数据库中所有关系的元数据信息,包括关系的名称、类型、所有者、存储引擎、占用磁盘空间、行数等等。这些信息对于进行数据库优化、监控和管理非常有用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值