发布
社区首页 >问答首页 >db分区与数据删除和导入

db分区与数据删除和导入
EN

Stack Overflow用户
提问于 2021-10-12 18:48:12
回答 2查看 26关注 0票数 0

我有一个脚本,从csv文件导入数据,并加载到数据库表。这些表由一个类似于customer_id的列进行分区。该脚本首先将数据加载到临时表中,检查唯一键/FK约束,删除违反FK/唯一约束的数据。然后,它从主表中删除现有分区,并将该临时表添加为分区。我的问题是,这是导入数据的最佳方法吗?我能想到的另一种方法是:不使用分区,只使用临时表,清理数据后,删除现有数据后将其导入主表。

EN

回答 2

Stack Overflow用户

发布于 2021-10-12 20:18:10

如果你能分区加载数据,那就更好了。

删除PostgreSQL表中的许多行是很痛苦的,DROP TABLE总是会赢。

票数 1
EN

Stack Overflow用户

发布于 2021-10-12 20:30:53

请记住,在PostgreSQL中,DELETE实际上并不删除表中的数据--它只是将该行标记为对以后的事务不可见。稍后,当表被清理时,这些不可见的行会被标记为可供将来的INSERTUPDATE重用。只有当表上的VACUUM FULL运行时,空间才会被回收。因此,“在删除现有数据后将其导入到可维护的”会导致臃肿。

DROP TABLE会立即回收空间。因此,使用分区和删除分区来回收空间会更有意义。

有关此行为的详细信息,请参阅documentation

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69545584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档