2012-03-01 54 views
1

我有一個紅寶石哈希16000項。 (作爲XML下載並轉換爲哈希) 我需要將這些推入數據庫。 每週一次,其中一些更改,但我不知道哪些。插入或更新postgresql en mass

我見過的建議什麼是正確的去SQL,因爲活動記錄是(在該網站)上只是一個直插慢70倍..甚至沒有思考的更新/插入

我m想知道什麼方法是最好的.. 有沒有人收到一個巨大的(或很小)的數據塊,他們不得不重複插入/更新?
你能提供建議嗎?

回答

1

我有一個非常相似的用例。我直接將XML文件讀入數據庫,使用xpath()將其解析到臨時表中,並使用良好的所有SQL執行所有檢查和升級。對我來說工作得很好(而且速度很快)。

我最近在相關的答案here上發佈了相應的代碼。
如果您不得不處理XML節點中的非唯一項目,則需要更多here

2

將大量數據加載到PostgreSQL中的最快方法是COPY命令。

只需生成一個包含所有數據的分隔文件,對錶格進行TRUNCATE,刪除所有索引和約束,然後使用COPY加載數據。

之後,在目標表上運行ANALYZE,然後創建索引和約束。

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