加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

一步一步带你入门MySQL中的索引和锁

发布时间:2019-11-04 16:39:30 所属栏目:MySql教程 来源:佚名
导读:副标题#e# 索引 索引常见的几种类型 索引常见的类型有哈希索引,有序数组索引,二叉树索引,跳表等等。本文主要探讨 MySQL 的默认存储引擎 InnoDB 的索引结构。 InnoDB的索引结构 在InnoDB中是通过一种多路搜索树B+树实现索引结构的。在B+树中是只有叶子结

但是因为它的加锁规则,又导致了扩大了一些加锁范围从而减少数据库并发能力。具体的加锁规则如下:

  •  加锁的基本单位是next-key lock 就是行锁和GAP锁结合。
  •  查找过程中访问到的对象就会加锁。
  •  索引上的等值查询,给唯一索引加锁的时候,next-key lock退化为行锁。
  •  索引上的等值查询,向右遍历时且最后一个值不满足等值条件的时候,next-key lock退化为间隙锁。
  •  唯一索引上的范围查询会访问到不满足条件的第一个值为止。

MVCC 解决幻读的思路比较复杂,这里就不做过多的验证。

总结

对于 MySQL 的索引来说,我给了很多实践,其实这些实践都是从原理来的,而 InnoDB 其实就是一个改进版的 B+树,还有存储索引的结构。弄懂了这些你就会得心应手起来。

而对于 MySQL 的锁,主要就是在行锁方面,InnoDB 其实就是使用了 行锁,MVCC还有next-key锁来实现事务并发控制的。

而对于MySQL中最重要的其实就是 锁和索引 了,因为内容太多这篇文章仅仅做一些介绍和简单的分析,如果想深入了解可以查看相应的文章。

【编辑推荐】

  1. MySQL性能优化之骨灰级高阶神技!
  2. MySQL开发规范与使用技巧总结
  3. MySQL事务,这篇文章就够了
  4. MySQL如何实时性能分析,诊断性能瓶颈
  5. MySQL用得好好的,为什么要转ES?
【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0

(编辑:常州站长网)

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

热点阅读