当前位置: 首页 > news >正文

PostgreSQL 批量COPY导入优化参数配置

💡 场景假设

我们进行的是 频繁批量导入、对数据持久性容忍较高 的场景,比如日志表、缓存表、临时数据表等。如果系统崩溃可重导入,那我们就可以牺牲一点写入安全性来换极致性能。

⚙️ 参数配置推荐(postgresql.conf)

参数推荐值作用
synchronous_commitoff提交不等待 WAL 写入磁盘,大幅提升写入速度
wal_writer_delay200ms~500ms延迟 WAL 写入,合并更多日志减少磁盘 I/O
commit_delay10000(10ms)提交前延迟,让多个事务聚合一起写入 WAL
checkpoint_timeout30min延长检查点周期,降低频繁 checkpoint 造成的写入峰值
wal_compressionon压缩 full-page WAL,提高磁盘使用率和复制效率
checkpoint_completion_target0.9检查点更平滑进行,避免 I/O 峰值
max_wal_size2GB 或更高减少 checkpoint 触发频率(建议视导入总量调整)
maintenance_work_mem512MB 或更高COPY 导入涉及排序/索引构建时提供更多内存

📌 修改 postgresql.conf 后记得 SELECT pg_reload_conf(); 或重启服务以生效。

Powered by Moshow郑锴@zhengkai.blog.csdn.net

✅ 导入前的会话级配置(可写入导入脚本)

SET synchronous_commit TO OFF;
SET maintenance_work_mem TO '512MB';

🛠 COPY 导入最佳实践

  • 事务包裹多个 COPY 操作:减少 commit 次数

  • 禁用约束 & 索引再导入:避免额外开销

  • 避免触发器 & 复杂表达式:纯数据搬运最快

  • 批次大小控制:比如 10,000 行一批,比单行更高效

  • 导入后手动 CHECKPOINT:确保 WAL 落盘恢复能力

🧠 总结一句话

这套配置是为 COPY 导入而生的「性能爆发模式」,吞吐可提至原来的数倍甚至十倍,尤其适合日志类、可重导数据、临时分析表等。

http://www.xdnf.cn/news/1277083.html

相关文章:

  • GC如何判断对象可以被回收?
  • SpringAI报错:com.github.victools.jsonschema.generator.AnnotationHelper
  • 《设计模式》UML类图
  • Java集合框架、Collection体系的单列集合
  • Elasticsearch QueryDSL 教程
  • Android APK 使用OpenGl 绘制三角形源码
  • Spring Boot 全局异常处理与日志监控实战
  • 智能体革命:网络安全人的角色重塑与突围指南
  • 井字游戏的强化学习
  • 复现论文《基于Retinex理论和深度学习的低照度图像增强算法研究》
  • CompletableFuture实现Excel 多个sheet页批量导出
  • 【模板】拓扑排序
  • 【嵌入式硬件实例】-555定时器PWM调光电路
  • 通过Certbot自动申请更新HTTPS网站的SSL证书
  • 字节:计算机存储单位
  • Spring Cloud系列—OpenFeign远程调用
  • 【东枫科技】FR3 可扩展测试平台,适用于 6G 研究与卫星通信,高达 1.6 GHz 的带宽
  • 【Html网页模板】炫酷科技风公司首页
  • 正确使用SQL Server中的Hint(10)—Hint简介与Hint分类及语法(1)
  • strace的常用案例
  • GPT-5与中国AI发展(DeepSeek R1视角)
  • FFmpeg实现音视频转码
  • QT的常用控件说明
  • 【从源码角度深度理解 Python 的垃圾回收机制】:第1课引用计数篇
  • C++高频知识点(二十)
  • 电脑使用“碎片整理”程序的作用
  • Vue.js设计于实现 - 概览(二)
  • Vue 事件冒泡处理指南:从入门到精通
  • vue2升级vue3:单文件组件概述 及常用api
  • 基于VuePress2开发文档自部署及嵌入VUE项目