tongchenkeji 发表于:2023-3-14 9:41:510次点击 已关注取消关注 关注 私信 用 file_fdw 映射csv文件,然后 upsert 性能会比copy差多少啊?[阿里云PolarDB] 暂停朗读为您朗读 用 file_fdw 映射csv文件,然后 upsert 性能会比copy差多少啊? 「点点赞赏,手留余香」 赞赏 还没有人赞赏,快来当第一个赞赏的人吧! 海报 PolarDB# 用 file_fdw 映射csv文件,然后 upsert 性能会比copy差多少啊?1
山海行AM 2023-11-27 23:04:59 1 fdw+upsert应该更快 但是只能更新一次, 一条记录不能在一个query中被多次upsert. 如果csv文件中可能出现PK唯一的单条记录多次更新, 建议你导入时用窗口查询处理一下. 此答案来自钉钉群“PG|POLARDB技术进阶”
牧羊吖AM 2023-11-27 23:04:59 3 使用 file_fdw 映射 CSV 文件后,使用 COPY 和 UPSERT 的性能差异会因多种因素而异。以下是一些可能导致性能差异的因素: 文件大小和行数 表大小和行数 CPU和内存规格 Postgres 版本 数据库配置参数 硬件配置 通常情况下,COPY 把数据一次性加载到 Postgres 中,因此,它比 UPSERT 更快。但是,如果你希望更新表中的现有数据,则必须使用 UPSERT 命令。因此,你需要权衡加载新数据的速度和更新现有数据的效率,对于不同的数据集和用例,这个选择可能会有所不同。你可以对两种方法分别运行性能测试,并根据测试结果决定哪种方法更适合你的场景。
fdw+upsert应该更快 但是只能更新一次, 一条记录不能在一个query中被多次upsert. 如果csv文件中可能出现PK唯一的单条记录多次更新, 建议你导入时用窗口查询处理一下.
此答案来自钉钉群“PG|POLARDB技术进阶”
不一定差吧,要看具体情况的。
使用
file_fdw
映射 CSV 文件后,使用COPY
和UPSERT
的性能差异会因多种因素而异。以下是一些可能导致性能差异的因素:通常情况下,
COPY
把数据一次性加载到 Postgres 中,因此,它比UPSERT
更快。但是,如果你希望更新表中的现有数据,则必须使用UPSERT
命令。因此,你需要权衡加载新数据的速度和更新现有数据的效率,对于不同的数据集和用例,这个选择可能会有所不同。你可以对两种方法分别运行性能测试,并根据测试结果决定哪种方法更适合你的场景。