1. <i id="s6b2k"><small id="s6b2k"></small></i>
    <b id="s6b2k"><bdo id="s6b2k"></bdo></b>
  2. <wbr id="s6b2k"></wbr>

    詳解PostgreSQL提升批量數據導入性能的n種方法_PostgreSQL

    來源:腳本之家  責任編輯:小易  

    關鍵字:批量數據導入,數據加載,大量插入,加快,提升速度
    多元化選擇時代,人生里很多事物都是如此,凡事都沒有一成不變的方式和方法。不管白貓黑貓,能抓老鼠的就是好貓,適合自己的就是最好的。
    提升批量數據導入的方法亦是如此,沒有何種方法是最優的,應用任何方法前根據自己的實際情況權衡利弊,做出選擇。
    批量導入數據之前,無論采取何種方式,務必做好相應的備份。
    導入完成后亦需對相應對象進行ANALYZE操作,這樣查詢優化器才會按照最新的統計信息生成正確的執行計劃。

    下面正式介紹提升批量數據導入性能的n種方法。

    方法1:禁用自動提交。

    psql
    \set AUTOCOMMIT off
    
    其他
    BEGIN;
    執行批量數據導入
    COMMIT;

    方法2:設置表為UNLOGGED。

    導入數據之前先把表改成UNLOGGED模式,導入完成后改回LOGGED模式。

    ALTER TABLE tablename SET UNLOGGED;
    執行批量數據導入
    ALTER TABLE tablename LOGGED;

    優點:
    導入信息不記錄WAL日志,極大減少io,提升導入速度。
    缺點:
    1.在replication環境下,表無法設置為UNLOGGED模式。
    2.導入過程一旦出現停電死機等會導致數據庫不能干凈關庫的情況,數據庫中所有UNLOGGED表的數據將丟失。

    方法3:重建索引。

    導入數據之前先刪除相關表上的索引,導入完成后重新創建之。

    DROP INDEX indexname;
    執行批量數據導入
    CREATE INDEX ...;

    查詢表上索引定義的方法

    select * from pg_indexes where tablename ='tablename' and schemaname = 'schemaname';

    方法4:重建外鍵。

    導入數據之前先刪除相關表上的外鍵,導入完成后重新創建之。

    ALTER TABLE ...
     DROP CONSTRAINT ... ;
    執行批量數據導入
    ALTER TABLE ...
     ADD CONSTRAINT ... 
     FOREIGN KEY ...
     REFERENCES ...; 

    相關信息可查詢pg_constraint。

    方法5:停用觸發器

    導入數據之前先DISABLE掉相關表上的觸發器,導入完成后重新ENABLE之。

    ALTER TABLE tablename DISABLE TRIGGER ALL; 
    執行批量數據導入
    ALTER TABLE tablename ENABLE TRIGGER ALL;

    相關信息可查詢pg_trigger。

    方法6:insert改copy

    COPY針對批量數據加載進行了優化。

    COPY ... FROM 'xxx';

    方法7:單值insert改多值insert

    減少sql解析的時間。

    方法8:insert改PREPARE

    通過使用PREPARE預備語句,降低解析消耗。

    PREPARE fooplan (int, text, bool, numeric) AS
     INSERT INTO foo VALUES($1, $2, $3, $4);
    EXECUTE fooplan(1, 'Hunter Valley', 't', 200.00);

    方法9:修改參數

    增大maintenance_work_mem,增大max_wal_size。

    方法10:關閉歸檔模式,降低wal日志級別。

    修改archive_mode參數控制歸檔開啟和關閉。降低wal_level值為minimal來減少日志信息記錄。
    此法需要重啟數據庫,需要規劃停機時間。此外如有replication備庫,還需考慮對其影響。

    到此這篇關于PostgreSQL提升批量數據導入性能的n種方法的文章就介紹到這了,更多相關PostgreSQL批量數據導入內容請搜索真格學網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持真格學網!

    您可能感興趣的文章:如何將excel表格數據導入postgresql數據庫postgresql 導入數據庫表并重設自增屬性的操作PostgreSql 導入導出sql文件格式的表數據實例sqoop讀取postgresql數據庫表格導入到hdfs中的實現postgresql 實現數據的導入導出使用python將mdb數據庫文件導入postgresql數據庫示例

  3. 本文相關:
  4. postgresql自動生成隨機數值的實例
  5. postgresql 創建表分區
  6. 查詢postgresql占多大內存的操作
  7. 基于postgresql 事務的提交與回滾解析
  8. 淺談postgresql默認端口5432你所不知道的一點
  9. postgresql排序與limit組合場景性能極限優化詳解
  10. springboot連接使用postgresql數據庫的方法
  11. postgresql 數據庫 varchar()字符占用多少字節介紹
  12. postgresql忘記postgres賬號密碼的解決方法
  13. postgresql 中的coalesce()函數使用小技巧
  14. 如何提高postgresql查詢性能
  15. PostgreSQL 怎么做數據的增量同步到其他PostgreSQL...
  16. 如何導入PostgreSQL數據庫數據
  17. 在postgresql插入大量數據,是否先要關閉自動提交?
  18. 將oracle庫的千萬級數據導到postgres中,怎樣配置d...
  19. 如何向postgresql數據庫里導入其它類型的數據?
  20. 有postgresql的備份表結構及數據,想把這些數據導...
  21. 如何批量將datable數據插入到PostgreSQL-CSDN論壇
  22. 如何批量地把XML文件導入Postgresql數據庫
  23. 基于PostgreSQL數據庫的幾種數據加密實現方法
  24. 網站首頁網頁制作腳本下載服務器操作系統網站運營平面設計媒體動畫電腦基礎硬件教程網絡安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess數據庫文摘數據庫其它首頁如何將excel表格數據導入postgresql數據庫postgresql 導入數據庫表并重設自增屬性的操作postgresql 導入導出sql文件格式的表數據實例sqoop讀取postgresql數據庫表格導入到hdfs中的實現postgresql 實現數據的導入導出使用python將mdb數據庫文件導入postgresql數據庫示例postgresql自動生成隨機數值的實例postgresql 創建表分區查詢postgresql占多大內存的操作基于postgresql 事務的提交與回滾解析淺談postgresql默認端口5432你所不知道的一點postgresql排序與limit組合場景性能極限優化詳解springboot連接使用postgresql數據庫的方法postgresql 數據庫 varchar()字符占用多少字節介紹postgresql忘記postgres賬號密碼的解決方法postgresql 中的coalesce()函數使用小技巧postgresql 角色與用戶管理介紹windows下postgresql數據庫的下載windows下postgresql安裝圖解postgresql中的oid和xid 說明15個postgresql數據庫實用命令分postgresql alter語句常用操作小windows postgresql 安裝圖文教程postgresql 安裝和簡單使用postgresql 創建表分區postgresql新手入門教程postgresql 實現啟動、狀態查看、關閉postgresql教程(十七):客戶端命令(1)如何將postgresql數據庫表內數據導出為expostgresql 導入數據庫表并重設自增屬性的postgresql 設置允許訪問ip的操作windows上postgresql安裝配置教程postgresql upsert(插入更新)數據的操作詳postgresql 實現查詢某時間區間的所有日期postgresql coalesce使用方法代碼解析postgresql 查看表的主外鍵等約束關系詳解
    免責聲明 - 關于我們 - 聯系我們 - 廣告聯系 - 友情鏈接 - 幫助中心 - 頻道導航
    Copyright © 2017 www.yu113.com All Rights Reserved
    战天txt全集下载