【DB吐槽大会】第70期 - PG 不支持update | delete skip locked, nowait语法

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

背景


1、产品的问题点

  • PG 不支持update | delete skip locked, nowait语法

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

  • NOWAIT | SKIP LOCKED 用于 select for update语句, 锁住某些行, 又不想长时间等待. 提高请求吞吐, 减少等待.
  • nowait 表示如果要锁的行发生了锁冲突, 则直接返回, 不等.
  • skip locked表示跳过有锁冲突的行, 不等待. 例如有10行是符合条件的, 但是有3行发生了行锁冲突, 那么就跳过着3行, 锁其他7行.

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

  • 通用

4、会导致什么问题?

  • 一般select for update后, 紧接着的大多数都是update或者delete操作, 如果是这样不妨直接支持update | delete skip locked, nowait语法.
  • select for update后, 再执行update或者delete操作, 增加了交互次数, 对于网络较差或者高并发的小事务场景, 性能影响比较大.

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

  • 可以使用CTE或CTID子句语法模拟一次交互

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

  • 需要了解cte语法, ctid子句语法

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

  • 希望内核可直接支持 update | delete skip locked, nowait 语法, 减少交互次数.
相关文章
|
安全 关系型数据库 数据库
Postgresql 数据库用户权限授权(用户角色分配模式)
为了更方面和安全地管理数据库用户账号权限安全,实现通过用户角色代理的模式,实现用户账号功能授权的模式
20719 2
Postgresql 数据库用户权限授权(用户角色分配模式)
|
监控 前端开发 Java
错误码如何设计才合理?
对于错误码的设计,不同的开发团队有不同的风格习惯。本文分享阿里文娱技术专家长统对于错误码的看法,希望从错误码使用的不同场景讨论得到一个合理的错误码规约,得到一个面向日志错误码标准和一个面向外部传递的错误码标准。
13115 3
错误码如何设计才合理?
|
12月前
|
JSON 监控 API
深度解析阿里巴巴国际站商品详情 API:从接口调用到数据结构化处理
本文详解阿里巴巴国际站商品详情接口调用方法,涵盖API认证、参数配置、数据解析及Python代码实现,助力开发者高效对接平台,获取商品信息、价格、SKU、物流等关键数据,适用于供应链分析与竞品监控等跨境电商场景。
|
SQL 人工智能 数据可视化
开源AI BI可视化工具-WrenAI
Wren AI 是一款开源的 SQL AI 代理,支持数据、产品及业务团队通过聊天、直观界面和与 Excel、Google Sheets 的集成获取洞察。它结合大型语言模型(LLM)与检索增强生成(RAG)技术,助力用户高效处理复杂数据分析任务。
|
12月前
|
机器学习/深度学习 移动开发 算法
【语音识别】基于K近邻分类算法的语音情感识别(Matlab代码实现)
【语音识别】基于K近邻分类算法的语音情感识别(Matlab代码实现)
388 4
|
Java 索引 安全
[Mvel]Mvel2.0使用指南一 基础
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SunnyYoona/article/details/75244442 MVEL在很大程度上受到Java语法的启发,作为一个表达式语言,也有一些根本的区别,旨在更高的效率,例如:直接支持集合、数组和字符串匹配等操作以及正则表达式。
17198 0
|
JavaScript Java 关系型数据库
Spring事务失效的8种场景
本文总结了使用 @Transactional 注解时事务可能失效的几种情况,包括数据库引擎不支持事务、类未被 Spring 管理、方法非 public、自身调用、未配置事务管理器、设置为不支持事务、异常未抛出及异常类型不匹配等。针对这些情况,文章提供了相应的解决建议,帮助开发者排查和解决事务不生效的问题。
2739 1
|
Web App开发 缓存 搜索推荐
实用的Chrome浏览器命令
【5月更文挑战第6天】探索Chrome的隐藏命令行工具,提升浏览效率和解决问题。如`chrome://flags/`启用实验性功能,`chrome://net-internals/`进行网络诊断,`chrome://settings/content/`管理内容设置等。了解这些工具,可解决浏览器问题,优化隐私和性能,实现个性化设置。成为Chrome专家,让浏览体验更上一层楼。
829 0
|
消息中间件 关系型数据库 Java
‘分布式事务‘ 圣经:从入门到精通,架构师尼恩最新、最全详解 (50+图文4万字全面总结 )
本文 是 基于尼恩之前写的一篇 分布式事务的文章 升级而来 , 尼恩之前写的 分布式事务的文章, 在全网阅读量 100万次以上 , 被很多培训机构 作为 顶级教程。 此文修改了 老版本的 一个大bug , 大家不要再看老版本啦。