当前位置: 首页 > 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.dtcms.com/a/324996.html

相关文章:

  • 近红外与可见光图像融合的多种方法实现
  • OpenAI正式发布GPT-5:迈向AGI的关键一步
  • Java基础-多线程
  • lesson34:深入理解Python线程:从基础到实战优化
  • hysAnalyser --- 支持文件转播UDP/RTP实时流功能
  • CompletableFuture实现Excel 多个sheet页批量导出
  • 【数据分析】循环移位岭回归分析:光遗传学冻结行为模式研究
  • 【PyTorch】单目标检测项目部署
  • MPLS的基本工作原理
  • AI玩具新浪潮:百亿资本涌入,情感计算重塑陪伴经济
  • WAIC2025逛展分享·AI鉴伪技术洞察“看不见”的伪造痕迹
  • JAVA中关于Stream流的使用
  • 虚拟主机示例
  • vuhub drippingblues靶场攻略
  • Windows环境下私有化部署Dify,并接入通义千问模型
  • UNet改进(31):基于Adaptive Attention的UNet设计与实践
  • 基于Spring SSE构建实时监控系统
  • Python 的列表 list 和元组 tuple 有啥本质区别?啥时候用谁更合适?
  • TC39x STM(System Timer)学习记录
  • 压力测试等工具源码包编译及使用方法
  • Vulnhub doubletrouble 靶场复现 详细攻略
  • Knuth‘s TwoSum Algorithm 原理详解
  • MyBatis 核心入门:从概念到实战,一篇掌握简单增删改查
  • 【东枫科技】FR3 可扩展测试平台,适用于 6G 研究与卫星通信,高达 1.6 GHz 的带宽
  • 【自动化运维神器Ansible】playbook案例解析:Tags组件实现任务选择性执行
  • 【01】华勤技术股份有限公司——华勤C++笔试,题目记录及解析
  • Java基础-使用反射做一个简易框架
  • Python 实例属性和类属性
  • 【PyTorch】单目标检测项目
  • vulnhub-Drippingblues靶机