1

我在 ruby​​ 哈希中有 16000 个项目。(下载为 XML 并转换为哈希)我需要将这些推送到数据库中。每周一次,其中一些会改变,但我不知道是哪些。

我所看到的建议是直接使用 SQL,因为活动记录(在该站点上)在直接插入时会慢 70 倍。甚至没有考虑更新/插入

我想知道哪种方法最好。有没有人收到过大量(或很小)的数据,他们必须反复插入/更新?
您能否提供建议。

4

2 回答 2

2

将大量数据加载到 PostgreSQL 中的最快方法是 COPY 命令。

只需生成一个包含所有数据的分隔文件,截断您的表,删除所有索引和约束,然后使用 COPY 加载您的数据。

之后,在目标表上运行 ANALYZE,然后创建索引和约束。

http://www.postgresql.org/docs/9.1/static/sql-copy.html

于 2012-03-01T01:01:55.650 回答
1

我有一个非常相似的用例。我直接将 XML 文件读入数据库,将其解析xpath()为临时表,并使用良好的所有 SQL 进行所有检查和升级。对我来说效果很好(而且速度很快)。

我最近在此处的相关答案中发布了该代码。
如果您必须处理 XML 节点中的非唯一项,这里还有更多内容。

于 2012-03-01T00:47:06.643 回答