【DB吐槽大会】第69期 - PG 不支持update | delete limit语法

简介: 大家好,这里是DB吐槽大会,第69期 - PG 不支持update | delete limit语法

背景


1、产品的问题点

  • PG 不支持update | delete limit语法

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

  • 更新、删除语法不支持限制条数的用法, 例如: 满足条件的有1000条, 而用户一次只想更新或删除10条.

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

  • 批处理、消费消息队列的内容

4、会导致什么问题?

  • 如果符合条件的记录数很多, 可能导致一条SQL delete|update的记录数超多. 如果既有insert又有高吞吐的update,delete, 那么这种大批量操作将导致大量tuple旧版本的产生, 并且只能在事务结束后进行垃圾回收, 从而导致表膨胀.
  • 分批操作可以降低单个事务的产生的dead tuple记录数. 解决单个事务内产生过多旧版本导致垃圾回收不及时的问题.

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

  • 可以使用ctid来模拟update | delete limit语法

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

  • 没有太大问题, 但是需要了解ctid的用法

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

  • 希望内核直接支持update | delete limit语法
相关文章
|
Prometheus 数据可视化 Cloud Native
Grafana 系列文章(四):Grafana Explore
Grafana 系列文章(四):Grafana Explore
Grafana 系列文章(四):Grafana Explore
|
5月前
|
人工智能 Linux API
OpenClaw 全平台部署与配置手册:阿里云轻量应用服务器+本地三系统+免费模型对接教程
OpenClaw(Clawdbot,业内常称龙虾)作为2026年主流开源AI代理工具,支持云端长期稳定运行与本地灵活部署两种模式。云端部署可实现7×24小时不间断工作、不占用本地设备、功耗更低、安全性更可控;本地部署则适合隐私敏感、离线使用、轻量化测试场景。本文基于2026年最新环境,完整提供阿里云轻量应用服务器一键部署、本地Windows11/MacOS/Linux手动部署、阿里云百炼Coding Plan免费大模型API配置、通讯工具集成方法以及全场景常见问题解决方案,全程无冗余步骤,可直接按流程执行。
720 0
|
前端开发 开发者
【微信公众号对接】有关签名一直报错,提示invalid signature问题(我的签名和使用微信开发者工具验证返回的签名的是一致的)但还是报错!!!
【微信公众号对接】有关签名一直报错,提示invalid signature问题(我的签名和使用微信开发者工具验证返回的签名的是一致的)但还是报错!!!
1117 0
|
存储 编解码 虚拟化
【2025最新】VMware Workstation Pro 虚拟机配置与安装VMware Tools 感受它的强大~
VMware Tools 是 VMware 虚拟机中自带的一种增强工具,能够显著提升虚拟机的性能和用户体验。它提供了优化的显卡驱动程序、文件共享与拖放功能、时间同步以及跨虚拟机和宿主机的复制粘贴功能。安装 VMware Tools 可以让虚拟机在 VMware 平台上运行得更加高效,并且对于老旧系统(如 Win98、Win2000、WinXP)也能提供必要的驱动支持。每个虚拟机都需要独立安装与其操作系统版本相匹配的 VMware Tools,以确保最佳兼容性和性能表现。
1978 6
【2025最新】VMware Workstation Pro 虚拟机配置与安装VMware Tools 感受它的强大~
|
存储 数据采集 大数据
Python推导式进阶指南:优雅初始化序列的科学与艺术
本文系统讲解Python推导式的用法与技巧,涵盖列表、字典、集合推导式及生成器表达式。通过代码示例和性能对比,展示推导式在数据结构初始化中的优势:简洁高效、执行速度快30%-50%。文章分析基础语法、核心应用场景(如序列构造、键值对转换、去重运算)及嵌套使用,并探讨使用边界与最佳实践,强调可读性优先原则。最后指出,合理运用推导式能显著提升代码质量和处理效率,同时避免过度复杂化的陷阱。
438 0
|
SQL 数据库
gbase 8a 数据库 SQL优化案例-关联顺序优化
gbase 8a 数据库 SQL优化案例-关联顺序优化
|
SQL 关系型数据库 数据库
使用 PostgreSQL 和 Python 实现数据库操作
【10月更文挑战第2天】使用 PostgreSQL 和 Python 实现数据库操作
|
应用服务中间件 程序员
IntelliJ IDEA 乱码:全网最全 4 种方法完美解决 IntelliJ IDEA 控制台中文乱码问题
IntelliJ IDEA 乱码:全网最全 4 种方法完美解决 IntelliJ IDEA 控制台中文乱码问题
2754 0
IntelliJ IDEA 乱码:全网最全 4 种方法完美解决 IntelliJ IDEA 控制台中文乱码问题
|
Java
新版minio依赖对putObject进行了修改
本文介绍了MinIO客户端在新版中对`putObject`方法的修改,从旧版的直接传参到新版的链式调用构建器模式。
890 2
LXJ
|
安全 关系型数据库 Linux
PostgreSQL通过pg_upgrade进行大版本升级
PostgreSQL通过pg_upgrade进行大版本升级
LXJ
3808 0