何时在PostgreSQL中使用继承表?
在哪些情况下,您应该使用继承表?我试图使用它们非常简单,继承看起来不像在OOP世界。
我以为它工作这样: 具有所有用户级别所需的所有字段的表用户。表格如管理员,管理员,博主等,但字段不从父项检查。例如,用户有电子邮件字段和继承的博客现在也有它,但它不是唯一的用户和博主在同一时间。即。与我向两个表添加电子邮件字段相同。 只有我可以想到的是通常使用的字段,如row_is_deleted,created_at,modified_at。这是继承表的唯一用法吗?
在postgres中使用表继承有一些主要原因。
让我们说,我们有一些表需要统计,它们是每月创建和填充: statistics - statistics_2010_04 (inherits statistics) - statistics_2010_05 (inherits statistics) 在此示例中,我们在每个表中有2.000.000行。每个表都有一个CHECK约束,以确保只有匹配月份的数据存储在其中。 所以什么使继承是一个很酷的功能 – 为什么它很酷的拆分数据? >性能:当选择数据时,我们SELECT * FROM统计WHERE日期BETWEEN x和Y,而Postgres只使用表,这是有意义的。例如。 SELECT * FROM statistics WHERE date BETWEEN’2010-04-01’AND’2010-04-15’只扫描表statistics_2010_04,所有其他表将不会被感动 – 快! 对于正确使用表继承作为性能助推器,请查看postgresql手册。 我大量使用表继承,特别是当涉及到存储日志数据按月分组。提示:如果存储数据,它永远不会改变(日志数据),使用CREATE INDEX ON()WITH(fillfactor = 100)创建或索引;这意味着在索引中不会保留更新空间 – 索引在磁盘上较小。 更新: 表的填充因子是10到100之间的百分比.100(完全打包)是默认值 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |