GreenPlum数据库日常维护运维(持续更新)

0    461    7

Tags:

👉 本文共约15843个字,系统预计阅读时间或需60分钟。

释放高水位的堆表,也叫表膨胀

高水位定义:表中没有几行数据,但是表占用空间很大的表就是有高水位的表。对于DML操作很频繁的表,非常容易出现表膨胀。

例如,表只有10行数据,但是却占用了100MB大小,那就是高水位的表;

表有1000万的数据,但是占用了100GB大小,那就是有高水位的表。

确认办法:

释放高水位的方法,如果是空表,则直接做truncate操作。

如果表中还有数据,则需要做vacuum操作:

注意:

1、执行 vacuum full会锁表,就连最基本的SELECT也会阻塞

2、对于大表不要随意使用 vacuum full,或者在业务空闲的时候使用

3、对系统表禁止做vacuum full,各个开发人员只做自己创建的表,没见过的表不要做

查询膨胀的AO表

对于AO表,执行vacuum即可释放膨胀空间。

特大表需要创建索引

在GreenPlum中,使用如下SQL查询出来表很大且不存在高水位,这类表需要自己创建索引,不然每次全表扫,肯定慢,这不是数据库的问题。。。表多大才建立索引???没有统一规定,一般情况,超过10G,且查询只需要返回很小的一部分数据,则需要创建索引。

创建索引的列遵循规则:

1、大表(大于10G)且不同值很多的列适合创建索引,例如,主键列

2、小表不要建立索引,会导致DML慢

3、 经常在where条件中的列适合索引

查询索引膨胀的表

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!
AiDBA后续精彩内容已被站长无情隐藏,请输入验证码解锁本文!
验证码:
获取验证码: 请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“AiDBA”或者“dbaup6”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复