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

前端之家收集整理的这篇文章主要介绍了如何在Postgresql中有效地将数百万行从一个表复制到另一个表?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有两个数据库表.一个包含数亿条记录.让我们称之为一个历史.另一个是每天计算的,我想将其所有记录复制到历史记录中.

我做的是跑:

INSERT INTO历史SELECT * FROM每日

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

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

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

猜你在找的Postgre SQL相关文章