Tidb中如何实现行锁

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:
  • 【问题描述】:

TIDB 3.0中如何实现类似Oracle中在一行记录上加上行锁?
select * from tab_name where id = 1 for update nowait

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出打印结果,请务必全选并复制粘贴上传。

tidb 兼容 select … from tbl for update 语句,但是并不会真正的去锁定该行,
tidb 的事务隔离级别为 SI(snapshot isolation),在事务开始时会通过快照将此事件点之前的数据进行版本锁定,保证该快照之前的时间点的事务保证已经提交成功。具体可以看下文档中的介绍。

https://docs.pingcap.com/zh/tidb/stable/transaction-isolation-levels#tidb-事务隔离级别