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

pgsql14自动创建表分区

最近有pgsql的分区表功能需求,没想到都2025年了,pgsql和mysql还是没有自身支持自动创建分区表的功能

现在pgsql数据库层面还是只能用老三样的办法来处理这个问题,每个方法各有优劣

1. 触发器
这是最传统的方法,通过创建一个触发器来检查数据并创建新分区

缺点是每次插入数据都会执行触发器,当数据量大时可能影响性能,现在基本很少用这个方案在生产环境上操作

2. pg_partman
PostgreSQL的一个扩展,专门用于自动管理分区表,个人使用这种方案比较多,而且比较简单,使用方法如下:

#安装好扩展后在配置文件中启用插件,添加以下内容后重启数据库
#postgresql.conf
shared_preload_libraries = 'pg_partman_bgw' 
pg_partman_bgw.interval = 3600    # pg_partman将每小时自动执行一次分区维护任务
pg_partman_bgw.role = 'username'
pg_partman_bgw.dbname = 'dbname'#进入数据库启用插件
CREATE EXTENSION pg_partman;#设置分区管理
SELECT partman.create_parent('public.a',         -- 父表表名'xxx_date',         -- 分区字段'month',            -- 分区类型(按月)1,                  -- 预创建分区数量p_premake := 3      -- 提前创建3个分区
);

3. pg_cron
编写一个自定义脚本,并通过pg_cron扩展定期执行,检查是否有分区,没有则创建。
其实这个方法对性能也没有什么影响,但是需要编写脚本和执行定时任务,

http://www.dtcms.com/a/192900.html

相关文章:

  • sqli-labs靶场第七关——文件导出注入
  • python 如何遍历 postgresql 所有的用户表 ?
  • PostgreSQL 联合索引生效条件
  • 每日Prompt:磨砂玻璃后的虚实对比剪影
  • 如何在WooCommerce中设置Stripe
  • 【匹配】Needleman–Wunsch
  • 【yolo】如何在 YOLOv8 中添加负样本以减少误检
  • Springboot3自定义starter笔记
  • MarkitDown:AI时代的文档转换利器
  • 四维时空数据安全传输新框架:压缩感知与几何驱动跳频
  • 【iOS安全】Dopamine越狱 iPhone X iOS 16.6 (20G75) | 解决Jailbreak failed with error
  • 如何在多线程环境下避免快速失败异常?
  • GPU异步执行漏洞攻防实战:从CUDA Stream竞争到安全编程规范
  • NHANES指标推荐:OBS
  • 大数据架构选型分析
  • 深度学习中的提示词优化:梯度下降全解析
  • 前端缓存策略
  • Milvus(23):过滤
  • 中国近代史2
  • 工业场景轮式巡检机器人纯视觉识别导航的优势剖析与前景展望
  • uniapp 弹窗封装(上、下、左、右、中五个方位)
  • 【FFmpeg+SDL】使用FFmpeg捕获屏幕,SDL显示
  • win10下安装redis并设置开机自启动
  • 前端的面试笔记——JavaScript篇(二)
  • 口播视频怎么剪!利用AI提高口播视频剪辑效率并增强”网感”
  • MATLAB安装全攻略:常见问题与解决方案
  • Linux | Linux系统安装虚拟机教程(超级简单)
  • 以项目的方式学QT开发(一)——超详细讲解(120000多字详细讲解,涵盖qt大量知识)逐步更新!
  • 比亚迪跨界降维打击!将正式宣布跨界,进入两三轮电动车电池市场
  • 解决xxx.jar中没有主清单属性的问题