gpt4 book ai didi

mysql - select 语句引起的数据库死锁

转载 作者:搜寻专家 更新时间:2023-10-30 23:46:03 25 4
gpt4 key购买 nike

我理解当两个或多个实体阻塞某些源时会发生死锁,并且它们都无法完成,因为它们以循环方式阻塞源。

select 语句会不会发生死锁? select 语句是否阻塞资源。?我相信插入或更新会阻塞该行,但对于 select 语句不是很确定。请指教。

最佳答案

使用 InnoDB 存储引擎(默认),读取是非阻塞的 - 因此两个选择不能相互阻塞。 InnoDB 是一个使用 MVCC(多版本并发控制)的版本控制引擎,这意味着事务 (A) 将在某一时刻及时获取感兴趣的记录的副本——如果它修改并提交数据,则任何在此之后开始的事务commit 将看到新副本,但是在此之前开始的任何事务在 A 开始之后但在 A 提交之前开始 (B) 的事务将看到 A 看到的副本。只有当其中一个事务修改数据时才会发生死锁(在 InnoDB 中以行级为基础进行锁定)。

有关详细信息,请参阅 herehere .对于 MyISAM 表(我对此知之甚少!),请在此处查看比较或仅谷歌“MyISAM vs InnoDB”(129,000 次点击。

关于mysql - select 语句引起的数据库死锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28335993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com