玩命加载中 . . .

学习之旅
19-redo日志 19-redo日志
在真正访问页面之前,需要把在磁盘上的页缓存到内存中的 Buffer Pool 之后才可以访问,对于一个已经提交的事务,在事务提交后即使系统发生了崩溃,这个事务对数据库中所做的更改也不能丢失,但是如果我们只在内存的 Buffer Pool 中
2022-06-11
18-事务简介 18-事务简介
在对某个页面进行读写访问时,都会先把这个页面加载到 Buffer Pool 中,之后如果修改了某个页面,也不会立即把修改同步到磁盘,而只是把这个修改了的页面加到 Buffer Pool 的 flush 链表中,在之后的某个时间点才会刷新到
2022-06-11
17-InnoDB的BufferPool 17-InnoDB的BufferPool
InnoDB需要访问某个页的数据时,就会把完整的页的数据全部加载到内存中,也就是说即使我们只需要访问一个页的一条记录,那也需要先把整个页的数据加载到内存中。将整个页加载到内存中后就可以进行读写访问了,在进行完读写访问之后并不着急把该页对应的
2022-06-11
14-基于规则的优化 14-基于规则的优化
14.2 外连接消除 外连接和内连接的本质区别就是:对于外连接的驱动表的记录来说,如果无法在被驱动表中找到匹配ON子句中的过滤条件的记录,那么该记录仍然会被加入到结果集中,对应的被驱动表记录的各个字段使用NULL值填充;而内连接的驱动表的记
2022-06-11
13-InnoDB统计数据是如何收集的 13-InnoDB统计数据是如何收集的
13.1 统计数据的存储方式 永久性的统计数据:这种统计数据存储在磁盘上,也就是服务器重启之后这些统计数据还在 非永久性的统计数据:这种统计数据存储在内存中,当服务器关闭时这些这些统计数据就都被清除掉了,等到服务器重启之后,在某些适当的场景
2022-06-11
12-基于成本的优化 12-基于成本的优化
读取一个页面花费的成本默认是 1.0 读取以及检测一条记录是否符合搜索条件的成本默认是 0.2 12.2.2 基于成本的优化步骤MySQL 的查询优化器会找出执行该语句所有可能使用的方案,对比之后找出成本最低的方案,这个成本最低的
2022-06-11
11-连接的原理 11-连接的原理
11.1.2 连接过程简介SELECT * FROM t1, t2 WHERE t1.m1 > 1 AND t1.m1 = t2.m2 AND t2.n2 < 'd' 连接查询的执行过程大致如下: 首先确定第一个需要查询的表,称为驱
2022-06-11
10-单表访问方法 10-单表访问方法
10.2 const通过主键或者唯一二级索引来定位一条记录的访问方法定义为const 10.3 ref搜索条件为二级索引列与常数进行等值比较,形成的扫描区间为单点扫描区间,采用二级索引来执行查询的访问方法称为ref 对于普通的二级索引来说,
2022-06-11
9-InnoDB的表空间 9-InnoDB的表空间
页面类型 类型名称(FIL_PAGE_) 十六进制 描述 TYPE_ALLOCATED 0x0000 最新分配,还未使用 UNDO_LOG 0x0002 undo日志页 INODE 0x0003 存储段的信息 I
2022-06-11
8-MySQL的数据目录 8-MySQL的数据目录
8.3 数据目录的结构数据目录是用来存储MySQL在运行过程中产生的数据 每个数据库都对应数据目录下的一个子目录 建立一个数据库时会做两件事 在数据目录下创建一个与数据库名同名的文件夹 在该文件夹下创建一个名为db.opt的文件,这
2022-06-11
6-B+树索引 6-B+树索引
各个数据页可以组成一个双向链表,而每个数据页中的记录会按照主键值从小到大的顺序排列成一个单向链表。每个数据页都会为存储在它里面的记录生成一个页目录,在通过主键值查找某条记录的时候可以在页目录中使用二分法快速定位到对应的槽,然后再遍历该槽对
2022-06-11
5-InnoDB数据页结构 5-InnoDB数据页结构
5.2 数据页结构快览一个InnoDB数据页的存储空间大致被划分为7个部分 名称 中文名 大小(字节) 描述 File Header 文件头部 38 页的一些通用信息 Page Header 页面头部 56 数据页专有的
2022-06-11
6 / 43