各位資料庫優化高手們:
目前開發中遇到如下一個性能問題,無法提高性能,請高手指點多謝.
現在有對應四個表的csv檔案,對應每個表的有7個csv檔案,一共28個檔案,
28個csv檔案大小是16G。其中一個表的匯入資料大概是2億行記錄。
采用posgresql 的 copy 命令將資料匯入到posgresql 資料庫中。
現在用java 寫了一個程式,用執行緒池管理執行緒,同時起了28個執行緒,執行copy 命令。
運行上述程式的環境是 centos 記憶體16G cpu 12kenel 24執行緒,
硬碟的寫速度是200M/秒
現在完成 上述匯入任務的平均時間是1400秒,將近23分鐘以上。
用iostat 命令發現io 使用率基本上都是100%,感覺性能瓶頸在io 上。
CPU的使用率也就20%.
客戶實際的資料量應該是上述資料量的70 倍,那要將近27個小時
客戶肯定不會接受的。
以前沒有處理過這么大量的資料匯入資料庫,因為采用posgresql 的 copy 命令
已經是批量匯入了,還有啥方法提高性能,希望高手指點。
uj5u.com熱心網友回復:
各位資料庫高手上面的問題,能否提供一下優化思路。
多謝
uj5u.com熱心網友回復:
各位資料庫性能調優大佬們上面的問題,能否提供一下優化思路。
多謝
uj5u.com熱心網友回復:
現在采用PostgreSQL 的copy 命令 采用多執行緒讀csv檔案匯入多個表資料,每個表資料量都過億條資料,各個表之間的欄位有關聯關系,如何保證資料的一致性
每個執行緒采用新的資料庫連接,無法保證資料的一致性。如果采用事務管理,共用一個資料庫連接,
多執行緒能并發嗎
希望高手指點
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/11704.html
標籤:高性能數據庫開發
