MySQL 实战 45 讲笔记(1)
说明:来源专栏MySQL实战45讲笔记。
01 基础架构:一条SQL查询语句是如何执行的?
MySQL 可以分为 Server 层和存储引擎层两部分
意思是说:
msyql数据存储的文件里。普通程序 一般直接存储内存就可以了。
我这样理解可以吗?一看就不懂,继续往下看。
02 日志系统:一条SQL更新语句是如何执行的?
一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等功
能模块,最后到达存储引擎。
那么,一条更新语句的执行流程又是怎样的呢?
redo log 用于保证 crash-safe 能力
binlog 日志只能用于归档
这是什么意思
将 redo log 的写入拆成了两个步骤:prepare 和 commit,这就是"两阶段提交"。
Point A
如果服务器异常关闭发生在Point A以及之前的时间点,这个时候redolog 和 binlog都没有任何记录,事务还未提交,不会造成任何影响。
Point B
当服务器启动的时候发现redo log里处于prepare状态的记录,这个时候需要检查binlog是否完整包含此条redo log的更新内容(通过全局事务ID对应),发现binlog中还未包含此事务变更,则丢弃此次变更。
Point C
和Point B基本相同,只不过此时发现binlog中包含redo log的更新内容,此时事务会进行提交。
Point D
binlog中和数据库中均含有此事务的变更,没有任何影响。
03 | 事务隔离:为什么你改了我还看不见?
04 | 深入浅出索引(上)
索引类型分为主键索引和非主键索引
在 InnoDB 里,主键索引也被称为聚簇索引(clustered index)。
k
扩展阅读:
B+ 树这种索引结构,可以利用索引的“最左前缀”
09 普通索引和唯一索引,应该怎么选择?
选择辅助索引条件: 有辅助索引,第一个字段明确了
神奇
普通索引 vs 唯一索引
查询没区别
10 MySQL为什么有时候会选错索引?
评论 (2 条评论)