暂无图片
pg表继承建议使用吗?
我来答
分享
暂无图片 匿名用户
pg表继承建议使用吗?

pg表继承建议使用吗?

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
记得清缓存

Postgresql 的表继承,主要用于表分区,即使是这样,也有很多限制

所以尽量不要使用,除非你真的知道自己要做什么

暂无图片 评论
暂无图片 有用 0
打赏 0
zhuzhijiao

表继承是PostgreSQL中特有的。

PostgreSQL内部是通过表继承来实现分区表的。PostgreSQL10.X之前的版本只能通过表继承来实现分区表。而PostgreSQL10.X提供了相应的DDL语句可以直接创建分区表,这种方式在PostgreSQL中被称为声明式分区(Declarative Partitioning),但内部原理仍是表继承。

表分区就是把逻辑上的一个大表分割成物理上的几块。表分区有若干好处:

  • 使删除历史数据更快,如果是按时间分区的,在删除历史数据时,直接删除历史分区即可,如果没有分区,通过DELETE删除历史数据时会很慢,还容易导致VACUUM超载。

  • 某些类型的查询性能可以得到极大提升。特别是在表中访问率较高的行位于一个单独分区或少数几个分区上的情况下。在按时间分区的表中,如果大多数查询发生在时间最近的一个或几个分区中,而较早时间的分区较少查询,那么,在建分区表后,各个分区表均有各自的索引,使用率较高的分区表的索引就可能完全缓存在内存中,这样效率就会提高很多。

  • 当查询或更新一个分区的大部分记录时,连续扫描该分区而不是使用索引离散地访问整个表,可以获得巨大的性能提升。

  • 很少用到的历史数据可以使用表空间的技术移动到便宜一些的慢速存储介质上。因为使用分区表可以将不同的分区安置在不同的物理介质上。

多大数据适合使用分区表?一般取决于具体的应用,不过也有个简单的基本原则,即表的大小超过了数据库服务器的物理内存大小时使用。

在使用通过继承实现的分区表时,一般会让父表为空,数据都存储在子表中。

具体要不要用还是根据业务来决定。

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
PostgreSQL Varchar类型最大存储多少字节内容?
回答 1
varchar(n)n代表字符个数(010485760),而非字节大小
postgresql 两个月份,如何计算一共有几个月?
回答 1
SELECTEXTRACT(YEARFROMage)12EXTRACT(MONTHFROMage)ASmonthsbetweenFROMage(TIMESTAMP'20220701',TIMESTAM
pg中通过t_infomask2来判断表是否是hot更新,对应的原理是啥?
回答 1
tinfomask标识位用于加快元组的可见性判断,其实现原理为:当查询一条数据时,需要判断所涉及元组的可见性,也就需要知道该元组的提交状态(查看CLOG),如果同一条数据经常被查询或被访问,就需要多次
请教一下,PG中能查到是否执行过CREATE PUBLICATION alltables FOR ALL TABLES;?有这种视图?谢谢。
回答 2
通过这个视图,pgpublications,可以得到,其中的puballtables字段,标识了这个。
pg命令行中如何手动插入表情符号emoji的数据?
回答 2
可以用图形化工具里的psql,可以直接插入表情符号我本地pgadmin4以及pgadmin4唤起的psql测试截图图下:
从oracle迁移到pg,有几百个表,有200多GB。怎么迁移速度快点?
回答 1
用ogg21c
postgreSQL数据库一直在starting是什么问题?
回答 2
已采纳
patroni的备机,如果数据目录是空的。启动patroni进程的时候是会自动从主库通过pgbasebackup拉取数据并建立同步关系的,而且,patroni带了rewind的功能。你可以确认下是不是
pgpool安装脚本,有好用的不?
回答 1
请问在Windows 下 .pgpass放哪里?
回答 1
以win10为例,文件路径为:C:\Users\pcsuc\AppData\Roaming\postgresql
根分区满了,为什么我删除了/ROOT/目录下的文件,磁盘空间为什么没有释放?
回答 2
执行以下命令reboot重启后将释放。
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~