加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-13 16:19:46 所属栏目:百科 来源:网络整理
导读:我有两个数据库表.一个包含数亿条记录.让我们称之为一个历史.另一个是每天计算的,我想将其所有记录复制到历史记录中. 我做的是跑: INSERT INTO历史SELECT * FROM每日 并且它在一段时间内成功了,但随着记录数量的不断增长,它开始越来越慢.现在我有大约200万
我有两个数据库表.一个包含数亿条记录.让我们称之为一个历史.另一个是每天计算的,我想将其所有记录复制到历史记录中.

我做的是跑:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读