Mysql 自动获取了哪些类型的锁?

问题描述

在mysql中,根据官方文档和其他文档,

IsolationLevel = ReadUncommitted 或ReadCommitted 或RepeatableRead 时,它使用Optimistic CC(带有MVCC),通常不需要太多锁。 在 Serializable 的情况下,我们将看到所有形式的锁,如 Read、Write、Range、Gap 等...

但是我最近在 Hibernate 中遇到了一个问题,当isolationLevel = RepeatableRead 时,它抛出了 LockAquisitionException。经过数小时的调试和分析行为,我发现我们正在插入引用父记录 (PrimaryKey) 的新行,其中 INNODB 锁定父记录(并且)另一个事务试图更新父记录并抛出 LockAquisitionException (在一些超时后) .

经过一些谷歌搜索后,我开始知道,如果隔离级别

有人可以提供有关锁的详细信息,无论隔离级别如何,mysql 都会自动采用简单的术语。这将有助于识别代码中的异常并进行更正。

就我而言,不会使用“for update”或“lock in share mode”执行查询。我只关心没有任何意图锁的普通 sql 查询。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...