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

pg表继承建议使用吗?

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

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

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

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

表继承是PostgreSQL中特有的。

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

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

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

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

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

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

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

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

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

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏