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

数据库两大必备神器:索引和锁底层原理是什么!

发布时间:2018-10-28 02:43:00 所属栏目:编程 来源:Java3y
导读:【51CTO技能沙龙】10月27日,让我们配合试探AI场景化应用实现之道 一、索引 在之前,我对索引有以下的认知: 索引可以加速数据库的检索速率; 表常常举办INSERT/UPDATE/DELETE操纵就不要成立索引了,换言之:索引会低落插入、删除、修改等维护使命的速率;

表锁着实我们措施员是很少体谅它的:

  •  在MyISAM存储引擎中,当执行SQL语句的时辰是自动加的。
  •  在InnoDB存储引擎中,假如没有行使索引,表锁也是自动加的。

此刻我们大大都行使MySQL都是行使InnoDB,InnoDB支持行锁:

  •  共享锁--读锁--S锁
  •  排它锁--写锁--X锁

在默认的环境下,select是不加任何行锁的~事宜可以通过以下语句表现给记录集加共享锁或排他锁。

  •  共享锁(S):SELECT * FROM table_name WHERE ... LOCK IN SHARE MODE。
  •  排他锁(X):SELECT * FROM table_name WHERE ... FOR UPDATE。

InnoDB基于行锁还实现了MVCC多版本并发节制,MVCC在断绝级别下的Read committed和Repeatable read下事变。MVCC可以或许实现读写不阻塞!

InnoDB实现的Repeatable read断绝级别共同GAP间隙锁已经停止了幻读!

  •  乐观锁着实是一种头脑,正如其名:以为不会锁定的环境下去更新数据,假如发明差池劲,才不更新(回滚)。在数据库中每每添加一个version字段来实现。
  •  气馁锁用的就是数据库的行锁,以为数据库会产生并发斗嘴,直接上来就把数据锁住,其他事宜不能修改,直至提交了当前事宜

三、总结

本文首要先容了数据库中的两个较量重要的常识点:索引和锁。他俩可以说痛痒相干的,锁会涉及到许多关于索引的常识~

【编辑保举】

  1. 高机能数据库毗连池的黑幕
  2. OSDI '18重磅解密:蚂蚁金服及时金融级漫衍式图数据库GeaBase
  3. 关于MySQL通用查询日记和慢查询日记说明
  4. 这样做数据整理,可以停止激发MySQL妨碍
  5. 漫衍式数据库TiDB在贸易银行的计划与实践
【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0

(编辑:湖南网)

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

热点阅读