最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解PostgreSQL提升批量數(shù)據(jù)導(dǎo)入性能的n種方法

 更新時間:2021年03月11日 09:11:52   作者:瀚高PG實驗室  
這篇文章主要介紹了PostgreSQL提升批量數(shù)據(jù)導(dǎo)入性能的n種方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

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

下面正式介紹提升批量數(shù)據(jù)導(dǎo)入性能的n種方法。

方法1:禁用自動提交。

psql
\set AUTOCOMMIT off

其他
BEGIN;
執(zhí)行批量數(shù)據(jù)導(dǎo)入
COMMIT;

方法2:設(shè)置表為UNLOGGED。

導(dǎo)入數(shù)據(jù)之前先把表改成UNLOGGED模式,導(dǎo)入完成后改回LOGGED模式。

ALTER TABLE tablename SET UNLOGGED;
執(zhí)行批量數(shù)據(jù)導(dǎo)入
ALTER TABLE tablename LOGGED;

優(yōu)點:
導(dǎo)入信息不記錄WAL日志,極大減少io,提升導(dǎo)入速度。
缺點:
1.在replication環(huán)境下,表無法設(shè)置為UNLOGGED模式。
2.導(dǎo)入過程一旦出現(xiàn)停電死機(jī)等會導(dǎo)致數(shù)據(jù)庫不能干凈關(guān)庫的情況,數(shù)據(jù)庫中所有UNLOGGED表的數(shù)據(jù)將丟失。

方法3:重建索引。

導(dǎo)入數(shù)據(jù)之前先刪除相關(guān)表上的索引,導(dǎo)入完成后重新創(chuàng)建之。

DROP INDEX indexname;
執(zhí)行批量數(shù)據(jù)導(dǎo)入
CREATE INDEX ...;

查詢表上索引定義的方法

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

方法4:重建外鍵。

導(dǎo)入數(shù)據(jù)之前先刪除相關(guān)表上的外鍵,導(dǎo)入完成后重新創(chuàng)建之。

ALTER TABLE ...
 DROP CONSTRAINT ... ;
執(zhí)行批量數(shù)據(jù)導(dǎo)入
ALTER TABLE ...
 ADD CONSTRAINT ... 
 FOREIGN KEY ...
 REFERENCES ...; 

相關(guān)信息可查詢pg_constraint。

方法5:停用觸發(fā)器

導(dǎo)入數(shù)據(jù)之前先DISABLE掉相關(guān)表上的觸發(fā)器,導(dǎo)入完成后重新ENABLE之。

ALTER TABLE tablename DISABLE TRIGGER ALL; 
執(zhí)行批量數(shù)據(jù)導(dǎo)入
ALTER TABLE tablename ENABLE TRIGGER ALL;

相關(guān)信息可查詢pg_trigger。

方法6:insert改copy

COPY針對批量數(shù)據(jù)加載進(jìn)行了優(yōu)化。

COPY ... FROM 'xxx';

方法7:單值insert改多值insert

減少sql解析的時間。

方法8:insert改PREPARE

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

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

方法9:修改參數(shù)

增大maintenance_work_mem,增大max_wal_size。

方法10:關(guān)閉歸檔模式,降低wal日志級別。

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

到此這篇關(guān)于PostgreSQL提升批量數(shù)據(jù)導(dǎo)入性能的n種方法的文章就介紹到這了,更多相關(guān)PostgreSQL批量數(shù)據(jù)導(dǎo)入內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • PostgreSQL 日志文件的所在位置

    PostgreSQL 日志文件的所在位置

    這篇文章主要介紹了PostgreSQL 日志文件的所在位置,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • 詳解如何在PostgreSQL中使用JSON數(shù)據(jù)類型

    詳解如何在PostgreSQL中使用JSON數(shù)據(jù)類型

    JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式,它采用鍵值對的形式來表示數(shù)據(jù),支持多種數(shù)據(jù)類型,本文給大家介紹了如何在PostgreSQL中使用JSON數(shù)據(jù)類型,需要的朋友可以參考下
    2024-03-03
  • Mybatis調(diào)用PostgreSQL存儲過程實現(xiàn)數(shù)組入?yún)鬟f

    Mybatis調(diào)用PostgreSQL存儲過程實現(xiàn)數(shù)組入?yún)鬟f

    這篇文章主要介紹了mybatis調(diào)用postgresql自定義函數(shù)傳遞數(shù)組參數(shù)的解決方案,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • postgresql 修改列類型操作

    postgresql 修改列類型操作

    這篇文章主要介紹了postgresql 修改列類型操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • PostgreSQL數(shù)據(jù)庫密碼被遺忘時的操作步驟

    PostgreSQL數(shù)據(jù)庫密碼被遺忘時的操作步驟

    密碼遺忘是常見的用戶問題,因此提供一種安全的遺忘密碼找回機(jī)制是十分必要的,這篇文章主要介紹了PostgreSQL數(shù)據(jù)庫密碼被遺忘時的操作步驟的相關(guān)資料,需要的朋友可以參考下
    2025-06-06
  • Vcenter清理/storage/archive空間的處理方式

    Vcenter清理/storage/archive空間的處理方式

    通過SSH登陸到Vcenter并檢查/storage/archive目錄發(fā)現(xiàn)占用過高,該目錄用于存儲歸檔的日志文件和歷史數(shù)據(jù),解決方案是保留近30天的歸檔文件,這篇文章主要給大家介紹了關(guān)于Vcenter清理/storage/archive空間的處理方式,需要的朋友可以參考下
    2024-11-11
  • PostgreSQL數(shù)據(jù)庫儲存空間不足的解決方案

    PostgreSQL數(shù)據(jù)庫儲存空間不足的解決方案

    在使用 PostgreSQL 數(shù)據(jù)庫時,可能會遇到存儲空間不足的問題,這個問題不僅會影響數(shù)據(jù)庫的正常運(yùn)行,還可能導(dǎo)致數(shù)據(jù)丟失或應(yīng)用程序出現(xiàn)故障,因此,了解如何應(yīng)對這種情況至關(guān)重要,所以本文給大家就介紹了PostgreSQL數(shù)據(jù)庫儲存空間不足的解決方案,需要的朋友可以參考下
    2024-07-07
  • postgresql 兩表關(guān)聯(lián)更新操作

    postgresql 兩表關(guān)聯(lián)更新操作

    這篇文章主要介紹了postgresql 兩表關(guān)聯(lián)更新操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • PostgreSQL的generate_series()函數(shù)的用法說明

    PostgreSQL的generate_series()函數(shù)的用法說明

    這篇文章主要介紹了PostgreSQL的generate_series()函數(shù)的用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • postgresql的jsonb數(shù)據(jù)查詢和修改的方法

    postgresql的jsonb數(shù)據(jù)查詢和修改的方法

    這篇文章主要介紹了postgresql的jsonb數(shù)據(jù)查詢和修改的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03

最新評論

炉霍县| 恩施市| 灵山县| 南和县| 井陉县| 大渡口区| 庆安县| 临城县| 长阳| 牟定县| 安西县| 阳东县| 射洪县| 田林县| 孝昌县| 曲沃县| 白玉县| 子长县| 广饶县| 辽中县| 察雅县| 社旗县| 静宁县| 邳州市| 浪卡子县| 浦县| 垦利县| 炉霍县| 梧州市| 松原市| 山西省| 获嘉县| 古田县| 疏附县| 东山县| 镇安县| 高唐县| 舟曲县| 阿克苏市| 平顺县| 舒城县|