我有一個資料庫,其中包含我從植物網站下載的 CSV 中的所有資料,我希望它始終根據這個 CSV 的版本進行更新。我的問題是 CSV 非常龐大,它包含至少 100 萬條記錄,平均需要一小時來保存所有內容。關于如何在無需重寫整個內容的情況下執行此更新的任何想法?TYSM!
一些額外的資訊:
- 這是一個 nodeJs 專案,我正在使用 Prisma 作為 ORM
- 它實際上是一個 txt 檔案,我將其決議為 CSV,因為所有資料都由制表符分隔
- 我正在使用 posgresql
- 目前我正在放棄桌子并從頭開始保存所有內容
uj5u.com熱心網友回復:
您基本上需要找到兩個 csv 版本之間的差異,并找到已更改的記錄并更新這些記錄。
您可以使用任何 text/csv 比較器 npm 庫來查找差異,一旦您獲得具有更新的記錄,您就可以為它們啟動更新查詢。
uj5u.com熱心網友回復:
您沒有提及如何將資料加載到 postgres 中,但您可以使用 COPY 命令,如下所示:
COPY mytable FROM '/tmp/myfile.csv'(格式 csv,標題 TRUE);
應該比使用 ORM 更快
https://www.postgresql.org/docs/current/sql-copy.html
其他選項是使用file_fdw,如果您只需要查詢資料,則無需更新
https://www.postgresql.org/docs/current/file-fdw.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/466191.html
標籤:节点.js 数据库 PostgreSQL 棱镜 批量更新
