设计多行更新事务时,为什么建议按固定顺序(如主键升序)加锁,如何落地?
设计多行更新事务时,为什么建议按固定顺序(如主键升序)加锁,如何落地? 本文先给出可直接复述的结论,再用最小代码说明事务 加锁顺序 避免死锁 设计的工作方式、判断依据、项目边界和常见误区。
并发编程专题面试题第 9 页,显示第 401–448 题,共找到 448 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
设计多行更新事务时,为什么建议按固定顺序(如主键升序)加锁,如何落地? 本文先给出可直接复述的结论,再用最小代码说明事务 加锁顺序 避免死锁 设计的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 的 lock_timeout 与 statement_timeout 分别在哪一阶段中断语句,如何配合使用? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL lock_timeout statement_timeout 区别的工作方式、判断依据、项目边界和常见误区。
长事务对 PostgreSQL 有哪些具体危害,为什么会让 VACUUM 无法回收死元组? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL 长事务 危害 VACUUM 膨胀的工作方式、判断依据、项目边界和常见误区。
并发下的丢失更新是怎么产生的,数据库有哪些手段可以阻止它? 本文先给出可直接复述的结论,再用最小代码说明丢失更新 lost update 并发 解决方案的工作方式、判断依据、项目边界和常见误区。
MVCC 带来的表膨胀是怎么形成的,PostgreSQL 靠什么机制回收旧版本? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL MVCC 表膨胀 VACUUM的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 判断一个行版本对某事务是否可见时依据哪些信息? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL 行版本可见性 xmin xmax的工作方式、判断依据、项目边界和常见误区。
不可重复读和幻读的区别是什么,分别需要哪个隔离级别才能避免? 本文先给出可直接复述的结论,再用最小代码说明不可重复读 幻读 区别 隔离级别的工作方式、判断依据、项目边界和常见误区。
乐观锁与悲观锁在数据库并发控制中的区别是什么,分别适合什么冲突频率的场景? 本文先给出可直接复述的结论,再用最小代码说明乐观锁 悲观锁 区别 适用场景的工作方式、判断依据、项目边界和常见误区。
线上出现大量慢查询怀疑锁等待时,如何用 pg_locks 与 pg_stat_activity 定位是谁在阻塞谁? 本文先给出可直接复述的结论,再用最小代码说明pg_locks pg_stat_activity 锁等待 排查的工作方式、判断依据、项目边界和常见误区。
Read Committed 下单条 SQL 语句执行期间,其他事务提交的修改对该语句可见吗? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL Read Committed 语句级快照 可见性的工作方式、判断依据、项目边界和常见误区。
Read Committed 下 UPDATE 等待另一事务释放行锁后,为什么用最新版本重新评估 WHERE 条件? 本文先给出可直接复述的结论,再用最小代码说明Read Committed 下 UPDATE 锁等待后重评估条件的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 中 Read Committed 与 Repeatable Read 在同一事务多次读同一行时结果有何不同? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL Read Committed Repeatable Read 区别的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 的只读可延迟事务(READ ONLY DEFERRABLE)在 Serializable 下能带来什么优化? 本文先给出可直接复述的结论,再用最小代码说明READ ONLY DEFERRABLE 只读可延迟事务的工作方式、判断依据、项目边界和常见误区。
设计数据库事务重试策略时,重试次数上限与退避间隔应该如何取舍? 本文先给出可直接复述的结论,再用最小代码说明事务重试 退避策略 指数退避的工作方式、判断依据、项目边界和常见误区。
为什么事务重试必须要求业务操作幂等,网络中断导致提交结果未知时会发生什么? 本文先给出可直接复述的结论,再用最小代码说明事务重试 幂等性 重复提交的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 中行级锁和表级锁分别在什么操作下产生,如何互相影响? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL 行锁 表锁 锁级别的工作方式、判断依据、项目边界和常见误区。
PostgreSQL Serializable 隔离级别下事务可能因为什么失败,应用必须做什么? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL Serializable 序列化失败 40001 重试的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 中 SET TRANSACTION 与 SET SESSION CHARACTERISTICS 的作用范围有何不同? 本文先给出可直接复述的结论,再用最小代码说明SET TRANSACTION 与会话级隔离级别区别的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 导出事务快照(pg_export_snapshot)解决的是什么一致性问题? 本文先给出可直接复述的结论,再用最小代码说明pg_export_snapshot 导出一致性快照的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 的 snapshot_too_old 参数为什么会让长事务报错,解决了什么运维问题? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL snapshot_too_old 长事务的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 的事务 ID 回卷问题是怎么产生的,为什么要求定期 VACUUM FREEZE? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL 事务ID 回卷 wraparound FREEZE的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 预备事务(PREPARE TRANSACTION)解决什么问题,为什么残留预备事务很危险? 本文先给出可直接复述的结论,再用最小代码说明PREPARE TRANSACTION 两阶段提交与残留风险的工作方式、判断依据、项目边界和常见误区。
INSERT ON CONFLICT DO UPDATE 相比先查再插为什么能避免并发下的重复键错误? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL upsert ON CONFLICT 并发安全的工作方式、判断依据、项目边界和常见误区。
用版本号列实现乐观并发控制时,UPDATE 语句应如何写,更新行数为 0 意味着什么? 本文先给出可直接复述的结论,再用最小代码说明乐观锁 版本号 UPDATE WHERE version的工作方式、判断依据、项目边界和常见误区。
什么是写偏序(write skew),为什么 Repeatable Read 下仍可能发生? 本文先给出可直接复述的结论,再用最小代码说明写偏序 write skew Repeatable Read的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 中两个事务并发更新同一行时,后到的事务会经历什么过程? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL 写写冲突 行锁 等待的工作方式、判断依据、项目边界和常见误区。
线程池隔离和信号量隔离两种熔断隔离方式的开销和适用场景是什么? 本文先给出可直接复述的结论,再用最小代码说明线程池隔离 信号量隔离 熔断 舱壁的工作方式、判断依据、项目边界和常见误区。
熔断和重试为什么必须配合超时一起设计,盲目重试会造成什么后果? 本文先给出可直接复述的结论,再用最小代码说明熔断 重试 超时 重试风暴的工作方式、判断依据、项目边界和常见误区。
预约系统如何防止同一资源在同一时段被并发订出,数据库约束应做到哪一层? 本文先给出可直接复述的结论,再用最小代码说明预约 时段 并发 唯一约束的工作方式、判断依据、项目边界和常见误区。
预约满员后的候补队列如何按顺序通知,且用户 5 分钟未确认就顺延? 本文先给出可直接复述的结论,再用最小代码说明预约 候补队列 超时 顺延的工作方式、判断依据、项目边界和常见误区。
评论数、点赞数在高并发下如何避免计数漂移,列表页又要多快看到变化? 本文先给出可直接复述的结论,再用最小代码说明评论 计数 一致性 最终一致的工作方式、判断依据、项目边界和常见误区。
评论系统展示楼中楼时,如何设计分页既能按时间看新回复又能展开子线程? 本文先给出可直接复述的结论,再用最小代码说明评论 楼中楼 分页 子线程的工作方式、判断依据、项目边界和常见误区。
Playwright 的并行 worker 与分片(sharding)机制如何影响测试设计与运行速度 本文先给出可直接复述的结论,再用最小代码说明Playwright 并行 sharding CI 分片的工作方式、判断依据、项目边界和常见误区。
Vitest 并行执行测试文件时靠什么隔离模块状态,什么全局副作用仍会泄漏? 本文先给出可直接复述的结论,再用最小代码说明Vitest 并行 隔离 worker 模块的工作方式、判断依据、项目边界和常见误区。
Vite 中 new URL('./img.png', import.meta.url) 这种资源引用方式解决什么问题? 本文先给出可直接复述的结论,再用最小代码说明Vite new URL import.meta.url 静态资源的工作方式、判断依据、项目边界和常见误区。
小程序逻辑层执行耗时任务会卡住什么,为什么渲染层动画仍可运行但事件响应变慢? 本文先给出可直接复述的结论,再用最小代码说明小程序 逻辑层 阻塞 JsCore 耗时任务的工作方式、判断依据、项目边界和常见误区。
小程序为什么采用逻辑层与渲染层分离的双线程模型,这一架构带来哪些限制? 本文先给出可直接复述的结论,再用最小代码说明小程序 双线程模型 逻辑层 渲染层的工作方式、判断依据、项目边界和常见误区。
小程序逻辑层和渲染层之间通过什么机制通信,为什么说频繁跨线程通信是性能瓶颈? 本文先给出可直接复述的结论,再用最小代码说明小程序 逻辑层 渲染层 通信 Native JSBridge的工作方式、判断依据、项目边界和常见误区。
小程序页面滚动卡顿、长列表渲染慢时,从双线程与 setData 角度如何定位和优化? 本文先给出可直接复述的结论,再用最小代码说明小程序 滚动卡顿 长列表 setData 性能优化的工作方式、判断依据、项目边界和常见误区。
小程序 Worker 适用于什么场景,它与逻辑层线程之间如何通信、有哪些限制? 本文先给出可直接复述的结论,再用最小代码说明小程序 Worker 多线程 postMessage 限制的工作方式、判断依据、项目边界和常见误区。
WebAssembly 的 memory.atomic.wait 与 notify 解决什么问题,能在主线程用吗? 本文先给出可直接复述的结论,再用最小代码说明WebAssembly atomics wait notify 主线程的工作方式、判断依据、项目边界和常见误区。
WebAssembly.compile 与 WebAssembly.instantiate 的职责区别是什么? 本文先给出可直接复述的结论,再用最小代码说明WebAssembly compile instantiate Module的工作方式、判断依据、项目边界和常见误区。
如何检测浏览器是否支持某个 WebAssembly 特性(如 SIMD、线程)? 本文先给出可直接复述的结论,再用最小代码说明WebAssembly 特性检测 feature detection的工作方式、判断依据、项目边界和常见误区。
编译好的 WebAssembly.Module 怎样传给 Web Worker 使用? 本文先给出可直接复述的结论,再用最小代码说明WebAssembly.Module postMessage worker的工作方式、判断依据、项目边界和常见误区。
WebAssembly 多线程为什么依赖 SharedArrayBuffer? 本文先给出可直接复述的结论,再用最小代码说明WebAssembly 线程 SharedArrayBuffer的工作方式、判断依据、项目边界和常见误区。
WebAssembly 线程池大小在浏览器里应该如何决定? 本文先给出可直接复述的结论,再用最小代码说明WebAssembly 线程池 hardwareConcurrency的工作方式、判断依据、项目边界和常见误区。
让 Emscripten 编译的 WebAssembly 支持 pthread 需要哪些编译与部署条件? 本文先给出可直接复述的结论,再用最小代码说明Emscripten pthread WebAssembly 线程的工作方式、判断依据、项目边界和常见误区。
把 WebAssembly 计算放进 Web Worker 的架构要注意哪些边界问题? 本文先给出可直接复述的结论,再用最小代码说明WebAssembly Web Worker 架构 通信的工作方式、判断依据、项目边界和常见误区。