![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
[LB-zhoyu]MySQL基础原理深入理解
文章平均质量分 92
[LB]MySQL基础原理深入理解
萧 炎
这个作者很懒,什么都没留下…
展开
-
(转载)MVCC多版本并发控制
前提概要 什么是MVCC 什么是当前读和快照读? 当前读,快照读和MVCC的关系 MVCC实现原理 隐式字段 undo日志 Read View(读视图) 整体流程 MVCC相关问题 RR是如何在RC级的基础上解决不可重复读的? RC,RR级别下的InnoDB快照读有什么不同? 一、前提概要什么是MVCC?MVCCMVCC,全称Multi-Version Concurrency Control,即多版本并发控制。MVCC是一种并发控制的方法,一般在数据转载 2021-05-11 09:03:58 · 183 阅读 · 0 评论 -
InnoDB MVCC何时创建read view
导读InnoDB MVCC是事务一启动就创建read view,还是什么时候?几个关于事务的基本概念说到事务,我们不得不先说下什么是ACID、MVCC、consistent read、read view 等几个基本概念。ACIDACID是事务的原子性、一致性、隔离性、持久性4个单词的首字母缩写。所有的事务型数据库系统都遵循这4个特性,InnoDB亦是如此。关于ACID的具体解释请自行 google/bing。MVCC是multiversion concurrency control的简称,转载 2020-07-15 08:17:55 · 740 阅读 · 1 评论 -
课堂笔记:MySQL(五) Mysql事务以及锁原理
五、Mysql事务以及锁原理事务(ACID)场景:小明向小强转账10元原子性(Atomicity)转账操作是一个不可分割的操作,要么转失败,要么转成功,不能存在中间的状态,也就是转了一半的这种情况。我们把这种要么全做,要么全不做的规则称之为原子性。隔离性(Isolation)另外一个场景:小明向小强转账10元小明向小红转账10元隔离性表示上面两个操作是不能相互影响的一致性(Consistency)对于上面的转账场景,一致性表示每一次转账完成后,都需要保证整个系统的余额等于所有账户的原创 2020-06-29 08:35:23 · 428 阅读 · 0 评论 -
课堂笔记:MySQL(四) Explain关键字解析
四、Explain关键字解析上节课内容回顾:列名描述id在一个大的查询语句中每个SELECT关键字都对应一个唯一的idselect_typeSELECT关键字对应的那个查询的类型table表名partitions匹配的分区信息type针对单表的访问方法possible_keys可能用到的索引key实际上使用的索引key_len实际使用到的索引长度ref当使用索引列等值查询时,与索引列进行等值匹配的对象信息row原创 2020-06-15 08:16:20 · 766 阅读 · 0 评论 -
课堂笔记:MySQL(三) 查询优化器工作原理
三、查询优化器工作原理问题:and是否会走索引explain select * from t1 where a > 1 and b > 1;分析:现在有两个索引,如果是and的情况下,如果两个索引都走的话,查出来的数据不会符合。此时只会走主键索引,从key的值可以看出:只走了primary ,此时走哪个索引不是绝对的,而是查询优化器根据查询成本自动选择的,去成本比较小的索引。问题:or是否会走索引explain select * from t1 where a > 4 or原创 2020-06-09 20:36:50 · 811 阅读 · 0 评论 -
课堂笔记:MySQL(二) B+树索引实战
二、B+树索引实战索引的代价空间上的代价一个索引都为对应一棵B+树,树中每一个节点都是一个数据页,一个页默认会占用16KB的存储空间,所以一个索引也是会占用磁盘空间的。时间上的代价索引是对数据的排序,那么当对表中的数据进行增、删、改操作时,都需要去维护修改内容涉及到的B+树索引。所以在进行增、删、改操作时可能需要额外的时间进行一些记录移动,页面分裂、页面回收等操作来维护好排序。B+树索引实战全值匹配select * from t1 where b = 1 and c = 1 and d =原创 2020-06-02 10:15:58 · 161 阅读 · 0 评论 -
课堂笔记:MySQL(一) InnoDb行格式、数据页结构以及索引底层原理分析
一、InnoDb行格式、数据页结构以及索引底层原理分析Mysql架构图存储引擎负责对表中的数据的进行读取和写入,常用的存储引擎有InnoDB、MyISAM、Memory等,不同的存储引擎有自己的特性,数据在不同存储引擎中存放的格式也是不同的,比如Memory都不用磁盘来存储数据。在InnoDB中,数据会存储到磁盘上,在真正处理数据时需要先将数据加载到内存,表中读取某些记录时,InnoDB存储引擎不需要一条一条的把记录从磁盘上读出来,InnoDB采取的方式是:将数据划分为若干个页,以页作为磁盘和原创 2020-06-02 10:09:11 · 274 阅读 · 0 评论