pg数据库partition分区问题请教

背景

现在有一个2000万左右的日志表,每月大概500万数据的增量。目前是最最最简单的单表,因一些原因,准备重建该表,并使用parttition进行分区。

目前准备方案如下:


不考虑业务中断、锁表等问题
其实是目前有一次涉及底层数据的大调整,已经公告停服了,领导安排顺便把这个优化了~~

请教

  • 目前方案是否可行?
  • 使用partition进行分区有什么注意事项吗?
  • 预创建分区那里,据说可以通过触发器自动创建,不知道有没有必要?
  • 跨分区查询时怎么优化查询条件
3 个赞

1.可行
2.写个sql 脚本 提前批量预创建分区
3.自动创建要触发器,没必要,可能会影响性能
4.查询条件加索引,避免用group order这些
ps:一个月400w 说明已经跑了小半年了,为什么一开始的时候不用clickhouse这种东西存日志呢?可以让运维去学学装一个,作为一个备用方案,比你研究分区查询效率来的更直接. 研发用起来比较简单,就是运维得是个绝活哥,以上都是个人建议,我是个菜鸟,多看其他大佬意见

2 个赞

这个没问题,如果涉及统计分析之类的,可以用代码去处理,sql只负责提取基础数据

一开始的时候要求快速上线,给领导反馈问题就是先不管,以后再说,只要快就行 :tieba_087:
运维的问题,运维被优化掉了,现在的运维是测试兼的,只负责给我们开机器等面板操作,其他的不管tieba_087

佬的方案挺齐全了,跟我们现在差不多,我这是Oracle。处理表 流程都大差不差, 备份数据 建表 建分区 建索引 分区维护 表分析之类的。数据量大的话而且经常查询的话 索引应该好好搞下。