加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

MySQL的又一神器-锁,MySQL口试必备

发布时间:2019-10-23 21:24:16 所属栏目:编程 来源:欧阳思海
导读:1 什么是锁 1.1 锁的概述 在糊口中锁的例子多的不能再多了,从迂腐的简朴的门锁,到暗码锁,再到此刻的指纹解锁,人脸辨认锁,这都是锁的光鲜的例子,以是,我们领略锁应该长短常简朴的。 再到MySQL中的锁,对付MySQL来说,锁是一个很重要的特征,数据库的

脏读: 在差异的事宜下,当前事宜可以读到其它事宜未提交的数据。其它我们必要留意的是默认的MySQL断绝级别是REPEATABLE READ是不会产生脏读的,脏读产生的前提是必要事宜的断绝级别为READ UNCOMMITTED,以是假如呈现脏读,也许就是这种断绝级别导致的。

下面我们通过一个例子看一下。

MySQL的又一神器-锁,MySQL口试必备

从上面这个例子可以看出,当我们的事宜的断绝级别为READ UNCOMMITTED的时辰,在会话A还没有提交时,会话B就可以或许查询到会话A没有提交的数据。

6.2 不行一再读

不行一再读: 是指在一个事宜内多次读取统一荟萃的数据,可是多次读到的数据是纷歧样的,这就违背了数据库事宜的同等性的原则。可是,这跟脏读照旧有区此外,脏读的数据是没有提交的,可是不行一再读的数据是已经提交的数据。

我们通过下面的例子来看一下这种题目的产生。

MySQL的又一神器-锁,MySQL口试必备

从上面的例子可以看出,在A的一次会话中,因为会话B插入了数据,导致两次查询的功效纷歧致,以是就呈现了不行一再读的题目。

我们必要留意的是不行一再读读取的数据是已经提交的数据,事宜的断绝级别为READ COMMITTED,这种题目我们是可以接管的。

假如我们必要停止不行一再读的题目的产生,那么我们可以行使Next-Key Lock算法(配置事宜的断绝级别为READ REPEATABLE)来停止,在MySQL中,不行一再读题目就是Phantom Problem,也就是幻像题目。

6.3 丢失更新

丢失更新:指的是一个事宜的更新操纵会被其它一个事宜的更新操纵所包围,从而导致数据的纷歧致。在当前数据库的任何断绝级别下都不会导致丢失更新题目,要呈现这个题目,在多用户计较机体系情形下有也许呈现这种题目。

怎样停止丢失更新的题目呢,我们只必要让事宜的操纵酿成串行化,不要并行执行就可以。

我们一样平常行使SELECT ... FOR UPDATE语句,给操纵加上一个排他X锁。

6.4 小结

这里我们做一个小结,首要是在差异的事宜的断绝级别下呈现的题目的比较,这样就越发清楚了。

MySQL的又一神器-锁,MySQL口试必备

【编辑保举】

  1. MySQL数据库基本操纵呼吁
  2. 微处事的数据库计划
  3. 超具体的SQL Server数据库触发器总结
  4. 官方器材|MySQL Router高可用道理与拭魅战
  5. 半小时MySQL基本入门,值得保藏
【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读