首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >select语句的数据库死锁

select语句的数据库死锁
EN

Stack Overflow用户
提问于 2015-02-05 04:01:45
回答 1查看 396关注 0票数 2

我理解当两个或多个实体阻塞某些源时会发生死锁,但没有一个能够完成,因为它们是以循环方式阻塞源的。

select语句会出现死锁吗?select语句会阻塞资源吗?我相信插入或更新将阻止行,但对于select语句不是很确定。请指点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-05 04:57:35

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

有关更多信息,请参见这里这里。对于MyISAM表(我对此知之甚少!),请查看这里的比较,或者只是Google "MyISAM对InnoDB“(129,000次点击量)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28335993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档