MySQL实战的基础篇概括

MySQL实战的基础篇概括,第1张

MySQL实战的基础篇概括

基础篇的目录

一、MySQL的结构一、查询语句的执行流程二、更新等写 *** 作语句的执行流程

1、redo log和binlog2、流程 三、事务

1、是什么2、几大特性3、并发事务出现的情况和造成的问题4、并发事务的处理方案 四、索引

1、是什么2、作用3、底层结构4、种类 五、锁

1、为什么需要以及作用2、种类

一、MySQL的结构


【1】分析器会对SQL做解析,目的是要知道要做什么以及语法是否正确
【2】优化器是对SQL的一些优化,如选择索引啥的
【3】执行器是执行SQL语句的,注意,对于update这些 *** 作都是在执行器中执行的,不是在引擎中执行的,引擎只是单纯的读写存储数据,SQL语句对应的处理是在执行器中的

一、查询语句的执行流程

【1】连接器处理连接
【2】分析器对SQL进行分析
【3】执行器对SQL进行优化
【4】执行器会先调用存储引擎的读接口进行读取数据
【5】执行器判断是否满足获取到了所有数据,如果没有,那么继续调用接口获取数据

二、更新等写 *** 作语句的执行流程 1、redo log和binlog

【1】binlog可看成是SQL的一个流水账记录,大小无限制,追加写
【2】redo log 可看成是对数据页进行修改的一个命令集合,大小有限制,追加写
【3】redo log是存储引擎层的,而binlog是在service层的
【4】 为什么引入redo log?它解决什么问题

2、流程

【1】连接器处理连接
【2】分析器对SQL进行分析
【3】执行器对SQL进行优化
【4】执行器先找引擎取对应数据那一行。ID 是主键,引擎直接用树搜索找到这一行。如果数据所在这一行所在的数据页本来就在内存中,就直接返回给执行器;否则,需要先从磁盘读入内存,然后再返回。
【5】 执行器拿到引擎给的行数据,对数据进行 *** 作,得到新的一行数据,再调用引擎接口写入这行新数据。
【6】引擎将这行新数据更新到内存中,同时将这个更新 *** 作记录到 redo log 里面,此时redo log 处于 prepare 状态(两种状态)。然后告知执行器执行完成了,随时可以提交事务。
【7】 执行器生成这个 *** 作的 binlog,并把 binlog 写入磁盘。
【8】执行器调用引擎的提交事务接口,引擎把刚刚写入的 redo log 改成提交(commit)状态,更新完成

三、事务 1、是什么

【1】事务:一系列 *** 作的集合
【2】事务基础文章

2、几大特性

【1】原子性 Atomicity、一致性 Consistency、隔离性 Isolation、持久性 Durability
【2】事务基础文章
【3】注意这里的一致性,其实感觉更强调的是数据的正确性,它和CAP分布式中的C(一致性)不一样,CAP中的C(一致性)强调的是副本之间的数据对齐一样,这个更贴进一致性这个词

3、并发事务出现的情况和造成的问题

【1】脏读、丢失修改(覆盖)、不可重复读、幻读
【2】事务并发方式:读-读(不需要处理)、读-写、写-写
【3】注意幻读,是由insert这种 *** 作引起的,注意幻度强调的是查到的数据不能完成后续的业务,而不是查出来的数据不一样;一定一定注意,强调的是查到的数据不能完成后续的业务
【4】事务的并发问题以及处理方案

例如:查下id=2的是否存在,得到的结果不存在,然后在下面插入id=2的业务,结果失败了,id=2在查询之后被其他事务插入了,导致这里出现了幻读导致业务失败

4、并发事务的处理方案

【1】隔离级别是为了处理并发事务提供的一种机制
【2】隔离级别、MVCC、锁等这些都是为了解决事务并发的方案
【3】事务并发问题以及处理方案
【4】处理读写并发的方案(MVCC多版本控制)

四、索引 1、是什么

【1】索引是对数据库表中一列或多列的值进行排序的一种结构
【2】索引是有序的

2、作用

【1】索引可以大大提高MySQL的检索速度
【2】基础文章

3、底层结构

【1】innoDB的是B+树(B+树以及其他树的文章)
【2】几种常见结构以及最底层的文件实现

4、种类

【1】索引种类
【2】注意下,感觉覆盖索引不太像索引的一种类型,感觉更像的是一种索引使用现象的概念描述

现象:搜索的索引键中的字段恰好是查询的字段(或是组合索引键中的其它字段)
通俗理解:查到的索引就是想要的结果,不需要回表去查聚簇索引(主键索引)的一种现象

五、锁 1、为什么需要以及作用 2、种类

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5712600.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存