【问题标题】:How do I partition table over two columns?如何将表分区到两列?
【发布时间】:2020-01-08 22:00:11
【问题描述】:

表 T1 有 cols - app_id,start_time,end_time,value。 我们有多个应用程序,并希望按 app_id 和 start_time(每周分区)对表进行分区。 这就是子分区的样子

T1_part1_2018 
app_id start_time end_time   value
1     10-10-2018  10-11-2018 garbage

T2_part2_2018 
app_id start_time end_time   value
2     10-10-2018  10-11-2018 garbage

T1_part1_2019
app_id start_time end_time   value
1     10-10-2019  10-11-2019 garbage

T2_part2_2019
app_id start_time end_time   value
2     10-10-2019  10-11-2019 garbage

我将如何实现这一目标?

【问题讨论】:

    标签: postgresql partition database-partitioning postgresql-10 postgresql-11


    【解决方案1】:

    我认为您正在寻找的是子分区机制:

    哪个分区必须是另一个分区的母分区完全取决于您的需求:如果您从不需要请求多个 app_id 的数据,我建议将 app_id 设为母分区键。

    编辑: 这是 pg_partman 扩展项目页面: https://pgxn.org/dist/pg_partman/doc/pg_partman.html

    【讨论】:

    • 除了子分区没有别的选择了吗?我担心管理多个客户端分区、可扩展性和性能的复杂性。
    • 如果你想要一些更容易管理的东西:pgxn.org/dist/pg_partman/doc/pg_partman.html 是你的扩展;)
    猜你喜欢
    • 1970-01-01
    • 2010-11-30
    • 1970-01-01
    • 1970-01-01
    • 2020-02-15
    • 1970-01-01
    • 2019-11-25
    • 2021-07-30
    • 2013-03-15
    相关资源
    最近更新 更多