MySQL - READ UNCOMMITTED 隔离级别是不是使用锁?

Posted

技术标签:

【中文标题】MySQL - READ UNCOMMITTED 隔离级别是不是使用锁?【英文标题】:MySQL - Does the READ UNCOMMITED isolation level use locks?MySQL - READ UNCOMMITTED 隔离级别是否使用锁? 【发布时间】:2020-06-11 21:41:00 【问题描述】:

所以我试图更多地了解隔离级别,我读到READ UNCOMMITED 隔离级别允许脏读数,这可能导致读数不一致。我还读到了

SELECT 语句以非锁定方式执行

所以我的问题是,这种类型的隔离是否对其他语句使用锁?例如,如果我使用INSERT INTO 语句,它会获取锁吗?

提前致谢!

【问题讨论】:

仅供参考,如果您正在尝试解决特定的性能/锁定问题(或类似这样的通用数据库问题),我建议直接询问dba.stackexchange.com 上确定的根本问题。隔离级别有多种用途,但对于READ UNCOMMITED,我怀疑它在服务器代码中很容易实现,而不是基于强烈的用户需求。 【参考方案1】:

是的。仍然需要锁来确保数据事务是原子的。

锁还确保像 auto_increments 值这样的元素只存在一次。

【讨论】:

以上是关于MySQL - READ UNCOMMITTED 隔离级别是不是使用锁?的主要内容,如果未能解决你的问题,请参考以下文章

解决“set transaction isolation level read uncommitted;“命令无法修改MySQL数据库隔离级别的问题

Read Uncommitted

MySQL数据库事务各隔离级别加锁情况--read uncommitted篇(转)

mysql 5.7.16 然后设置 事务隔离级别为 read uncommitted 不起作用.以下是截图.请大神帮帮我.

READ UNCOMMITTED 与 FOR UPDATE 的替代方法

为啥使用 READ UNCOMMITTED 隔离级别?