【发布时间】:2012-09-03 18:30:23
【问题描述】:
我正在插入数百万条来自 C++ 结构的记录。使用常规插入,我的性能很糟糕,即使在配置优化之后,数据库也占用了 98% 的程序时间。我正在阅读我应该使用 COPY 从 CSV 文件中导入它。
现在我不太确定先写入 CSV 文件然后将其重写到数据库是否会有很大的改进,因为写入会加倍。我看过管道 STDIN,但乍一看似乎还有很多开销,而且它是有限的
如果我有一个 CSV 格式的字符串,那么将该数据写入我的数据库的最快方法是什么?
提前谢谢你,
客户体验
【问题讨论】:
-
这几百万条记录每次都一样吗?你的数据库不是持久化的吗?
-
相同的列,不同的数据。数据库是持久的,afaik。
-
你的表有索引吗?触发器?约束?您是否在事务中批量插入?
-
除了PK之外没有索引,没有触发器,大量的FK。没有批处理。
标签: database postgresql csv query-optimization