我有一个postgres问题:
我有一个数据库,该数据库的表包含几周的数据(历史记录:3年)。应用程序显示数据。我默认在postgres中更改配置,以改善数据导入。
每天,表仅在当前星期刷新,因此脚本会删除当前星期,并将当前星期导入表中。 这需要40分钟,但我想我可以改善这一点。 如果我截断整个表并导入所有数据,则需要3个小时(7千兆字节)。
有比删除/插入更好的方法吗?
我可以仅使用当周数据创建另一个表,并在应用程序“联合”中使用 从tb_data联合中选择*全部从tb_data_week中选择* 我认为这样会更快,因为在数据周表中进行截断/插入将比在大表中进行删除/插入要快。 但是在应用程序中全部合并可能会很慢
非常感谢
答案 0 :(得分:0)
您可以每周partition桌。
要导入每周数据,请插入新的空表中。导入完成后,删除旧的星期分区并使用alter table base_table attach partition ...
手册中提供了此过程的示例:Partition Maintenance