MySQL
diao_梓键
这个作者很懒,什么都没留下…
展开
-
MySQL事务隔离级别
MySQL事务隔离级别INNODB隔离级别的实现INNODB是通过锁的并发控制(LBCC)和多版本的并发控制(MVCC)实现事务隔离的。为什么INNODB在RR级别下不存在幻读的情况?因为INNODB在可重复读级别下存在间隙锁,间隙锁阻塞了Insert操作。间隙锁仅对插入操作互斥,且不同事务的间隙锁并不互斥。...原创 2020-12-25 10:26:56 · 81 阅读 · 0 评论 -
事务的四大特性及实现原理
事务的四大特性及实现原理1.原子性(Atomicity)不可再分,事务的最小单位。在一个事务中,我们对数据库的操作,要么都成功,要么都失败,不可能出现部分成功或部分失败的情况。若操作失败必须回滚。原子性在innodb是通过undo log实现的,它记录了数据修改之前的值(逻辑日志),一旦发生异常,就可以用undo log实现回滚的操作。2.一致性(Consistency)指的是数据库的完整性约束没有被破环,事务执行的前后都是合法的数据状态。比如主键必须是唯一,字段长度符合要求。除了数据库自身的完整原创 2020-12-20 21:47:31 · 1436 阅读 · 0 评论 -
b+树的特点和优势
MySQL 中的 B+Tree 特点:1、它的关键字的数量是跟路数相等的;2、B+Tree 的根节点和枝节点中都不会存储数据,只有叶子节点才存储数据。目前的认知:我们这要存放的数据是什么?是不是真实数据的地址?搜索到关键字不会直接返回,会到最后一层的叶子节点。比如我们搜索 id=28,虽然在第一层直接命中了,但是数据地址在叶子节点上面,所以我还要继续往下搜索,一直到叶子节点。3、B+Tree 的每个叶子节点增加了一个指向相邻叶子节点的指针,它的最后一个数据会指向下一个叶子节点的第一个数据,形原创 2020-12-19 11:22:48 · 6942 阅读 · 1 评论 -
一条SQL语句在MySQL中执行过程全解析
本篇文章会分析一个 sql 语句在 MySQL 中的执行流程,包括 sql 的查询在 MySQL 内部会怎么流转,sql 语句的更新是怎么完成的。在分析之前我会先带着你看看 MySQL 的基础架构,知道了 MySQL 由那些组件组成以及这些组件的作用是什么,可以帮助我们理解和解决这些问题。一 MySQL 基础架构分析1.1 MySQL 基本架构概览下图是 MySQL 的一个简要架构图,从下图你可以很清晰的看到用户的 SQL 语句在 MySQL 内部是如何执行的。先简单介绍一下下图涉及的一些组件的基转载 2020-12-16 10:53:19 · 89 阅读 · 0 评论