Gumihoy
06
05
03
《MySQL实战45讲》 《MySQL实战45讲》
《01 | 基础架构:一条SQL查询语句是如何执行的》 《02 | 日志系统:一条SQL更新语句是如何执行的》 《03-事务隔离:为什么你改了我还看不见》 《04 | 深入浅出索引(上)》 《05 | 深入浅出索
2019-06-03
03
03
02 | 日志系统:一条SQL更新语句是如何执行的 02 | 日志系统:一条SQL更新语句是如何执行的
前面我们系统了解了一个查询语句的执行流程,并介绍了执行过程中涉及的处理模块。相信你还记得,一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等功能模块,最后到达存储引擎。 那么,一条更新语句的执行流程又是怎样的呢?之前你可能经常
2019-06-03
03
03 | 事务隔离:为什么你改了我还看不见 03 | 事务隔离:为什么你改了我还看不见
提到事务,你肯定不陌生,和数据库打交道的时候,我们总是会用到事务。 最经典的例子就是转账,你要给朋友小王转 100 块钱,而此时你的银行卡只有 100 块钱。转账过程具体到程序里会有一系列的操作,比如查询余额、做加减法、更新余额等,这些操作
2019-06-03
03
04 | 深入浅出索引(上) 04 | 深入浅出索引(上)
提到数据库索引,我想你并不陌生,在日常工作中会经常接触到。比如某一个 SQL 查询比较慢,分析完原因之后,你可能就会说“给某个字段加个索引吧”之类的解决方案。但到底什么是索引,索引又是如何工作的呢?今天就让我们一起来聊聊这个话题吧。 数据库
2019-06-03
03
05 | 深入浅出索引(下) 05 | 深入浅出索引(下)
在上一篇文章中,我和你介绍了 InnoDB 索引的数据结构模型,今天我们再继续聊聊跟 MySQL 索引有关的概念。 在开始这篇文章之前,我们先来看一下这个问题: 在下面这个表 T 中,如果我执行 select * from T where
2019-06-03
03
03
03
08 | 事务到底是隔离的还是不隔离的 08 | 事务到底是隔离的还是不隔离的
我在第 3 篇文章和你讲事务隔离级别的时候提到过,如果是可重复读隔离级别,事务 T 启动的时候会创建一个视图 read-view,之后事务 T 执行期间,即使有其他事务修改了数据,这个事务看到的仍然跟在启动时看到的一样。也就是说,一个在可重
2019-06-03
03
09 | 普通索引和唯一索引,应该怎么选择 09 | 普通索引和唯一索引,应该怎么选择
在前面的基础篇文章中,我给你介绍过索引的基本概念,相信你已经了解了唯一索引和普通索引的区别。今天我们就继续来谈谈,在不同的业务场景下,应该选择普通索引,还是唯一索引? 假设你在维护一个市民系统,每个人都有一个唯一的身份证号,而且业务代码已经
2019-06-03
03
10 | MySQL为什么有时候会选错索引 10 | MySQL为什么有时候会选错索引
前面我们介绍过索引,你已经知道了在 MySQL 中一张表其实是可以支持多个索引的。但是,你写 SQL 语句的时候,并没有主动指定使用哪个索引。也就是说,使用哪个索引是由 MySQL 来确定的。 不知道你有没有碰到过这种情况,一条本来可以执行
2019-06-03
2 / 6