
《MySQL 实战 45 讲》
文章平均质量分 94
《MySQL 实战 45 讲》
bm1998
这个作者很懒,什么都没留下…
展开
-
《MySQL 实战 45 讲》笔记——8. 事务到底是隔离的还是不隔离的?
文章目录事务与锁“快照” 在 MVCC 里是怎么工作的?更新逻辑小结上期问题时间事务与锁我在第 3 篇文章和你讲事务隔离级别的时候提到过,如果是可重复读隔离级别,事务 T 启动的时候会创建一个视图 read-view,之后事务 T 执行期间,即使有其他事务修改了数据,事务 T 看到的仍然跟在启动时看到的一样。也就是说,一个在可重复读隔离级别下执行的事务,好像与世无争,不受外界影响。但是,我在上一篇文章中,和你分享行锁的时候又提到,一个事务要更新一行,如果刚好有另外一个事务拥有这一行的行锁,它又不能这么原创 2021-08-13 09:28:13 · 206 阅读 · 0 评论 -
《MySQL 实战 45 讲》笔记——7. 行锁功过:怎么减少行锁对性能的影响?
文章目录从两阶段锁说起死锁和死锁检测小结上期问题时间声明:本博客是本人在学习《MySQL 实战 45 讲》后整理的笔记,旨在方便复习和回顾,并非用作商业用途。本博客已标明出处,如有侵权请告知,马上删除。在上一篇文章中,我跟你介绍了 MySQL 的全局锁和表级锁,今天我们就来讲讲 MySQL 的行锁。MySQL 的行锁是在引擎层由各个引擎自己实现的。但并不是所有的引擎都支持行锁,比如 MyISAM 引擎就不支持行锁。不支持行锁意味着并发控制只能使用表锁,对于这种引擎的表,同一张表上任何时刻只能有原创 2021-08-11 20:03:03 · 202 阅读 · 0 评论 -
《MySQL 实战 45 讲》笔记——6. 全局锁和表锁 :给表加个字段怎么有这么多阻碍?
文章目录全局锁表级锁小结上期问题时间声明:本博客是本人在学习《MySQL 实战 45 讲》后整理的笔记,旨在方便复习和回顾,并非用作商业用途。本博客已标明出处,如有侵权请告知,马上删除。今天我要跟你聊聊 MySQL 的锁。数据库锁设计的初衷是处理并发问题。作为多用户共享的资源,当出现并发访问的时候,数据库需要合理地控制资源的访问规则。而锁就是用来实现这些访问规则的重要数据结构。根据加锁的范围,MySQL 里面的锁大致可以分成全局锁、表级锁和行锁三类。今天这篇文章,我会和你分享全局锁和表级锁。而原创 2021-08-10 12:00:02 · 172 阅读 · 0 评论 -
《MySQL 实战 45 讲》笔记——5. 深入浅出索引(下)
文章目录回表覆盖索引最左前缀原则索引下推小结上期问题时间声明:本博客是本人在学习《MySQL 实战 45 讲》后整理的笔记,旨在方便复习和回顾,并非用作商业用途。本博客已标明出处,如有侵权请告知,马上删除。回表在上一篇文章中,我和你介绍了 InnoDB 索引的数据结构模型,今天我们再继续聊聊跟 MySQL 索引有关的概念。在开始这篇文章之前,我们先来看一下这个问题:在下面这个表 T 中,如果我执行 select * from T where k between 3 and 5,需要执行几次原创 2021-08-06 19:49:05 · 159 阅读 · 0 评论 -
《MySQL 实战 45 讲》笔记——4. 深入浅出索引(上)
文章目录索引索引的常见模型InnoDB 的索引模型索引维护小结上期问题时间声明:本博客是本人在学习《MySQL 实战 45 讲》后整理的笔记,旨在方便复习和回顾,并非用作商业用途。本博客已标明出处,如有侵权请告知,马上删除。索引提到数据库索引,我想你并不陌生,在日常工作中会经常接触到。比如某一个 SQL 查询比较慢,分析完原因之后,你可能就会说 “给某个字段加个索引吧” 之类的解决方案。但到底什么是索引,索引又是如何工作的呢?今天就让我们一起来聊聊这个话题吧。数据库索引的内容比较多,我分成了原创 2021-08-06 11:15:02 · 188 阅读 · 0 评论 -
《MySQL 实战 45 讲》笔记——3. 事务隔离:为什么你改了我还看不见?
文章目录事务隔离性与隔离级别事务隔离的实现事务的启动方式小结上期问题时间声明:本博客是本人在学习《MySQL 实战 45 讲》后整理的笔记,旨在方便复习和回顾,并非用作商业用途。本博客已标明出处,如有侵权请告知,马上删除。事务提到事务,你肯定不陌生,和数据库打交道的时候,我们总是会用到事务。最经典的例子就是转账,你要给朋友小王转 100 块钱,而此时你的银行卡只有 100 块钱。转账过程具体到程序里会有一系列的操作,比如查询余额、做加减法、更新余额等,这些操作必须保证是一体的,不然等程序查完原创 2021-08-04 19:58:16 · 182 阅读 · 0 评论 -
《MySQL 实战 45 讲》笔记——2. 日志系统:一条SQL更新语句是如何执行的?
文章目录一条更新语句的执行流程重要的日志模块:redo log重要的日志模块:binlog两阶段提交小结声明:本博客是本人在学习《MySQL 实战 45 讲》后整理的笔记,旨在方便复习和回顾,并非用作商业用途。本博客已标明出处,如有侵权请告知,马上删除。一条更新语句的执行流程前面我们系统了解了一个查询语句的执行流程,并介绍了执行过程中涉及的处理模块。相信你还记得,一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等功能模块,最后到达存储引擎。那么,一条更新语句的执行流程又是怎样的原创 2021-08-04 02:31:31 · 190 阅读 · 0 评论 -
《MySQL 实战 45 讲》笔记——1. 基础架构:一条SQL查询语句是如何执行的?
文章目录MySQL 基本架构示意图连接器查询缓存分析器优化器执行器小结声明:本博客是本人在学习《MySQL 实战 45 讲》后整理的笔记,旨在方便复习和回顾,并非用作商业用途。本博客已标明出处,如有侵权请告知,马上删除。MySQL 基本架构示意图下面我给出的是 MySQL 的基本架构示意图,从中你可以清楚地看到 SQL 语句在 MySQL 的各个功能模块中的执行过程。大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。Server 层包括连接器、查询缓存、分析器、优化器转载 2021-08-02 20:39:12 · 148 阅读 · 0 评论