MySQL
文章平均质量分 92
wdwiscool
这个作者很懒,什么都没留下…
展开
-
MySQL的MVCC
事务隔离的实现理解了事务的隔离级别,我们再来看看事务隔离具体是怎么实现的。这里我们展开说明“可重复读”。在 MySQL 中,实际上每条记录在更新的时候都会同时记录一条回滚操作。记录上的最新值,通过回滚操作,都可以得到前一个状态的值。假设一个值从 1 被按顺序改成了 2、3、4,在回滚日志里面就会有类似下面的记录。当前值是 4,但是在查询这条记录的时候,不同时刻启动的事务会有不同的 read-view。如图中看到的,在视图 A、B、C 里面,这一个记录的值分别是 1、2、4,同一条记录在系统中可以存原创 2022-03-15 08:59:19 · 1533 阅读 · 0 评论 -
MySQL-03 全局锁、表锁、行锁
今天我想聊聊 MySQL 的锁。数据库锁设计的初衷是处理并发问题。作为多用户共享的资源,当出现并发访问的时候,数据库需要合理地控制资源的访问规则。而锁就是用来实现这些访问规则的重要数据结构。MySQL数据库对锁的支持离不开事务,所以,看完本篇文章以后再看我写的02事务章节,或者看完事务的隔离级别以后再看本篇文章,对于理解将会有质的飞跃。 根据加锁的范围,MySQL 里面的锁大致可以分成全局锁、表级锁和行锁三类。今天这篇文章不会涉及锁的具体实现细节,主要介绍的是碰到锁时的现象和其背后的原理。全局锁顾原创 2021-06-25 11:18:13 · 173 阅读 · 0 评论 -
MySQL-01 深入浅出索引
深入浅出索引(上)重点讲解:InnoDB 的索引模型索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。索引的常见类型有哈希表、有序组数、搜索树。哈希表:联想HashMap的底层结构即可。如果Hash冲突概率很高,很多Key的哈希值相同,下边挂载的链表很长时,由于链表是无序的,所以搜索对应具体值很慢。所以,哈希表这种结构适用于只有等值查询的场景,比如Memcached 及其他一些 NoSQL 引擎。有序数组:数组嘛 查询速度杠杠的,但是新增修改删除速度太慢,消耗资源太多。二叉搜索树:原创 2021-06-23 15:41:47 · 105 阅读 · 0 评论