如何在Postgresql中有效地将数百万行从一个表复制到另一个表?

如何在Postgresql中有效地将数百万行从一个表复制到另一个表?,第1张

概述我有两个数据库表.一个包含数亿条记录.让我们称之为一个历史.另一个是每天计算的,我想将其所有记录复制到历史记录中. 我做的是跑: INSERT INTO历史SELECT * FROM每日 并且它在一段时间内成功了,但随着记录数量的不断增长,它开始越来越慢.现在我有大约200万条记录需要在一次 *** 作中从每日复制到历史记录,并且完成时间太长. 是否有另一种更有效的方法将数据从一个表复制到另一个表? 如果 我有两个数据库表.一个包含数亿条记录.让我们称之为一个历史.另一个是每天计算的,我想将其所有记录复制到历史记录中.

我做的是跑:

INSERT INTO历史SELECT * FROM每日

并且它在一段时间内成功了,但随着记录数量的不断增长,它开始越来越慢.现在我有大约200万条记录需要在一次 *** 作中从每日复制到历史记录,并且完成时间太长.

是否有另一种更有效的方法将数据从一个表复制到另一个表?

如果您打算长期保存历史记录(很多个月),我建议您查看分区选项 – 可能是每天或每周的一个分区,依此类推.它还取决于您的历史记录表的访问模式(您是否运行跨日期访问数据的查询?您是否进行了大量聚合等).查看用于存储聚合/摘要的物化视图.
@L_301_0@
http://www.postgresql.org/docs/9.3/static/sql-creatematerializedview.html 总结

以上是内存溢出为你收集整理的如何在Postgresql中有效地将数百万行从一个表复制到另一个表?全部内容,希望文章能够帮你解决如何在Postgresql中有效地将数百万行从一个表复制到另一个表?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/1167134.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-01
下一篇2022-06-01

发表评论

登录后才能评论

评论列表(0条)

    保存