小程序制作平台网站设计平台 互联网品牌制作专家
关于A5客户收购GoogleAdsense带有搜索账户的相关事宜更多

软文发布平台资讯中心

详解PostgreSQL提升批量数据导入性能的n种方法

详解PostgreSQL提升批量数据导入性能的n种方法

  项目招商找A5 快速获取精准代理名单

关键字:批量数据导入,数据加载,大量插入,加快,提升速度

多元化选择时代,人生里很多事物都是如此,凡事都没有一成不变的方式和方法。不管白猫黑猫,能抓老鼠的就是好猫,适合自己的就是最好的。

提升批量数据导入的方法亦是如此,没有何种方法是最优的,应用任何方法前根据自己的实际情况权衡利弊,做出选择。

批量导入数据之前,无论采取何种方式,务必做好相应的备份。

导入完成后亦需对相应对象进行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 ...;

查询表上索引定义的方法

1select * 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针对批量数据加载进行了优化。

1COPY ... FROM 'xxx';

方法7:单值insert改多值insert

减少sql解析的时间。

方法8:insert改PREPARE

通过使用PREPARE预备语句,降低解析消耗。

PREPARE fooplan (int, text, bool, numeric) ASINSERT 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备库,还需考虑对其影响。

文章来源:脚本之家

来源地址:https://www.jb51.net/article/207336.htm

尊敬的看官您对详解PostgreSQL提升批量数据导入性能的n种方法有什么看法呢?互联网品牌制作专家愿与您共同探讨!版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请加微信号oem365 举报,一经查实,本站将立刻删除。

上一篇: 网站不收录该怎么解决   返 回   下一篇:PostgreSQL数据库中如何保证LIKE语句的效率

相关资讯

小程序应用场景 | 小程序解决方案 | 小程序案例 | 小程序应功能 | 软文发布资源 | 网站设计

酒店预约解决方案
酒店预约小程序走红网络,也是传统转型的重要变化
详情
投票解决方案
强大功能,傻瓜式管理,有效防止作弊刷票
详情
新零售解决方案
小程序是现在新零售的新方式,深度结合线上线下
详情
预约服务解决方案
预约到店小程序通过用户在线预约到店等
详情
企业官网解决方案
企业展示小程序主要展示企业信息、产品案例等
详情
教育培训解决方案
主要展示教育机构的课程、可在线预约与购买课程
详情
推广解决方案
可以让企业通过推广模式全面展示自己的产品
详情
到店解决方案
到店服务解决方案,主要是面向实体餐饮门店
详情

我们的服务是否能满足您的需求?

如果不能,请联系我们或给我们留言,我们收到后会第一时间联系您!感谢您对我们的关注!

粤公网安备 44200002005005号