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

新说MySQL事宜断绝级别!

发布时间:2018-12-20 15:37:59 所属栏目:编程 来源:孤独烟
导读:弁言 各人在口试中必然遇到过 说说事宜的断绝级别吧? 诚恳说,事宜断绝级别这个题目,无论是校招照旧社招,口试官都爱问!然而今朝网上许多文章,说句其真话啊,我看了后我都猜疑作者弄懂没!由于他们对可一再读(Repeatable Read)和串行化(serializable)的

By default, InnoDB operates in REPEATABLE READ transaction isolation level. In this case, InnoDB uses next-key locks for searches and index scans, which prevents phantom rows (see Section 14.7.4, “Phantom Rows”).

凭证本来这句话的意思,应该是

InnoDB默认用了REPEATABLE READ。在这种环境下,行使next-key locks办理幻读题目!

功效预计,某个海内翻译职员翻着翻着酿成了

InnoDB默认用了REPEATABLE READ。在这种环境下,可以办理幻读题目!

然后各人继承你抄我,我抄你,功效你懂的!

显然,漏了"行使了next-key locks!"这个前提后,意思完全改变,我们在该断绝级别下执行语句

  1. select * from tx_tb where pId >= 1; 

是快照读,是不加任何锁的,基础不能办理幻读题目,除非你用

  1. select * from tx_tb where pId >= 1 lock in share mode; 

这样,你就用上了next-key locks,才气办理幻读题目!

串行读

即SERIALIZABLE_READ。在该断绝级别下,全部的select语句后都自动加上lock in share mode。因此,在该断绝级别下,无论你怎样举办查询,城市行使next-key locks。全部的select操纵均为当前读!

新说MySQL事宜断绝级别! 

OK,留意看上表赤色部门!就是由于在该断绝级别下行使了next-key locks,innodb将pId=1这条索引记录,和(1,++∞)这个间隙锁住了。其他事宜要在这个间隙上插数据,就会阻塞,从而防备幻读产生!

有的人会说,你这第二次查询的功效,也变了啊,明明和第一次查询功效纷歧样啊?对此,我只能说,请看清晰啊。这是被本身的事宜改的,不是被其他事物修改的。这不算是幻读,也不是不行一再读。

总结

上面罗里吧嗦一大堆,最其后一个表格做总结吧,你口试答这个表就行。上面的统统是为了这张表做筹备!

新说MySQL事宜断绝级别!

【编辑保举】

  1. 运维 | 美团数据库智能运维试探与实践
  2. MySQL自增id超大题目查询
  3. MySQL PK MongoDB:多文档事宜支持,谁更友爱?
  4. 数据库首要特点是掩护数据的安详性和靠得住性以及正确性和有用性
  5. MySQL主从复制的常见拓扑、道理说明以及怎样进步服从
【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0

(编辑:湖南网)

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

热点阅读