postgresql分区表相关问题处理

1.使用pg_cron按日创建分区表,会出现所在数据库对应用户权限不足的问题。

原因是pg_cron运行在postgres数据库中,是用superuser进行执行的,对应的分区表的owner为postgres,所以需要单独授权对表的所有操作权限。不知道直接改变owner能不能实现,需要测试验证一下。

2.对应分区表查询时只根据id不加分区键造成的cpu高占用问题。

在频繁进行插入更新时,会造成大量cpu的占用,但看io并不高。

优化前16核cpu占用率基本在75%以上,io 2M/S左右,可能更低。

优化后效果,16核cpu占用率在0.9%左右,io基本在10M/s .

实际经验告诉我们要用好分区表,必须查询的时候要带上分区键。

我现在综合想了一下,为啥分区表没有用上分区键导致cpu高,而io不高的原因。 1. pg16分区表充分利用了并行扫描机制,所以各个cpu很高;2.数据库有缓存以及操作系统有足够的缓存,所以大部分数据可以从内存或者操作系统的缓存里面去取,最终到达磁盘的io并不高。

相关推荐
头发那是一根不剩了12 分钟前
Spring Boot 多数据源切换:AbstractRoutingDataSource
数据库·spring boot·后端
草履虫建模37 分钟前
Redis:高性能内存数据库与缓存利器
java·数据库·spring boot·redis·分布式·mysql·缓存
泊浮目1 小时前
未来数据库硬件-计算篇
数据库·云计算·操作系统
靖顺2 小时前
【OceanBase诊断调优】—— 执行计划显示分区 PARTITIONS[P0SP9] 如何查询是哪个分区?
数据库·oracle·oceanbase
KIDAKN2 小时前
MySQL 存储结构
数据库·mysql
Code季风2 小时前
SQL关键字快速入门:HAVING 分组后的条件过滤
数据库·sql·mysql
程序猿ZhangSir3 小时前
Redis 缓存进阶篇,缓存真实数据和缓存文件指针最佳实现?如何选择?
数据库·redis·缓存
yjb.gz3 小时前
Oracle函数JSON_TABLE使用
数据库·oracle·json
Dubhehug3 小时前
4.B树和B+树的区别?为什么MySQL选择B+树作为索引?
数据库·b树·mysql·面试·b+树
linux修理工4 小时前
n1 armbian 安装桌面环境并启用xrdp远程登录
linux·服务器·数据库