【DB吐槽大会】第78期 - PG 不支持绕过shared buffer的查询和写入

简介: 大家好,这里是DB吐槽大会,第78期 - PG 不支持绕过shared buffer的查询和写入

背景


1、产品的问题点

  • PG 不支持绕过shared buffer的查询和写入

2、问题点背后涉及的技术原理

  • PG 读写操作都要经过shared buffer , 某些特定场景除外: 《PostgreSQL shared buffer 管理机制》
  • Bulk-reading (当表被全表扫描时, 只有当表的大小超过四分之一shared buffer时, 才会使用ring buffer)
  • When a relation whose size exceeds one-quarter of the buffer pool size (shared_buffers/4) is scanned. In this case, the ring buffer size is 256 KB.
  • Bulk-writing
  • When the SQL commands listed below are executed. In this case, the ring buffer size is 16 MB.
  • COPY FROM command.
  • CREATE TABLE AS command.
  • CREATE MATERIALIZED VIEW or REFRESH MATERIALIZED VIEW command.
  • ALTER TABLE command.
  • Vacuum-processing
  • When an autovacuum performs a vacuum processing. In this case, the ring buffer size is 256 KB.

3、这个问题将影响哪些行业以及业务场景

  • 通用

4、会导致什么问题?

  • 大表查询, 写入大量数据(insert into)时可能导致shared buffer里面的热数据被挤出去. 业务高峰期可能带来RT抖动, 影响业务体验, 严重的甚至雪崩.

5、业务上应该如何避免这个坑

  • 避免高峰期全表扫描小于四分之一shared buffer的大表

6、业务上避免这个坑牺牲了什么, 会引入什么新的问题

  • 无法完全杜绝

7、数据库未来产品迭代如何修复这个坑

  • 期望内核支持绕过shared buffer的查询和写入语法, 或通过会话GUC参数可以控制. 避免大表查询对热数据的影响.
目录
打赏
0
0
0
0
37
分享
相关文章
沉浸式学习PostgreSQL|PolarDB 20: 学习成为数据库大师级别的优化技能
在上一个实验《沉浸式学习PostgreSQL|PolarDB 19: 体验最流行的开源企业ERP软件 odoo》 中, 学习了如何部署odoo和polardb|pg. 由于ODOO是非常复杂的ERP软件, 对于关系数据库的挑战也非常大, 所以通过odoo业务可以更快速提升同学的数据库优化能力, 发现业务对数据库的使用问题(如索引、事务对锁的运用逻辑问题), 数据库的代码缺陷, 参数或环境配置问题, 系统瓶颈等.
1034 1
【一文搞懂PGSQL】6. PostgreSQL + pgpool-II 实现读写分离
本文介绍了如何使用 PostgreSQL 和 pgpool-II 实现读写分离。pgpool-II 支持连接池、负载均衡等功能,适用于多种模式。文中详细描述了安装、配置及启动过程,并提供了示例命令,帮助读者快速搭建并验证读写分离环境。通过配置 `pgpool.conf` 文件指定监听地址、端口及节点信息等参数,确保系统的高效运行与故障转移。
【AI系统】动手实现 PyTorch 微分
本文介绍了使用操作符重载(OO)编程方式实现的自动微分,特别是采用反向模式(Reverse Mode)的实现方法。文中详细解释了操作符重载的基本概念及其在自动微分中的应用,以及反向模式的工作原理。通过 Python 示例代码,演示了如何手动实现类似 PyTorch 中自动微分的核心机制,包括定义 `Variable` 类、`Tape` 结构以及实现基本的数学运算符重载。最后,通过一个具体的数学函数示例展示了如何利用上述机制计算梯度,帮助读者理解反向模式自动微分的全过程。
145 1
【AI系统】动手实现 PyTorch 微分
什么是DBMS及其类型
【8月更文挑战第3天】
962 6
什么是DBMS及其类型
NFT数字藏品(iBOX平台)交易系统开发逻辑技术方案
 NFT是元宇宙的核心和底层支撑之一。As a polymer of equity certificates and smart contracts,NFT has been highly consistent with digital art,intellectual property rights and other market attractive assets since its emergence.It is almost difficult for brands to completely ignore NFT in their own business consideratio
从Citus深度解密如何基于PostgreSQL做分布式数据库
从源码级别揭秘Citus如何基于PostgreSQL做一款分布式数据库,解决分布式场景的数据分片、分布式SQL、分布式事务、数据倾斜、数据迁移等难点问题,理解分布式领域设计的“取”与“舍”。
2190 3
从Citus深度解密如何基于PostgreSQL做分布式数据库
安谋科技(Arm China)刘庆川:借助Arm SIMD指令提升Java应用性能
2023年9月22日,系列课程收官的最后一节《借助Arm SIMD指令提升Java应用性能》正式上线,由安谋科技(Arm China)高级工程师刘庆川主讲,内容涵盖:SIMD 指令及 Java VM介绍、如何在 Java 应用中使用 SIMD 指令、Java Vector API在 倚天上的案例分析。本期节目在阿里云官网、阿里云微信视频号、阿里云钉钉视频号、InfoQ 官网、阿里云开发者微信视频号、阿里云创新中心直播平台 & 微信视频号同步播出,同时可以点击【https://developer.aliyun.com/topic/ecs-yitian】进入【倚天实例迁移课程官网】了解更多内容。
安谋科技(Arm China)刘庆川:借助Arm SIMD指令提升Java应用性能
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问