玩命加载中 . . .

学习之旅
22-锁 22-锁
22.1.1 写-写情况当一个事务想对这条记录做改动时,首先会看看内存中有没有与这条记录关联的锁结构,当没有的时候就会在内存中生成一个锁结构与之关联 22.1.2 读-写或写-读情况 方案1:读操作利用多版本并发控制(MVCC),写操作进行
2022-06-11
21-事务隔离级别和MVCC 21-事务隔离级别和MVCC
MySQL 是一个客户端/服务器架构的软件,对于同一个服务器来说,可以有若干个客户端与之连接,每个客户端与服务器连接上之后,就称之为一个会话(Session)。每个客户端都可以在自己的会话中向服务器发出请求语句,一个请求语句可能是某个事务的
2022-06-11
20-undo日志 20-undo日志
20.2 事务id 对于只读事务来说,只有在它第一次对某个用户创建的临时表执行增、删、改操作时才会为这个事务分配一个事务id,否则的话是不分配事务id的 对于读写事务来说,只有在它第一次对某个表(包括用户创建的临时表)执行增、删、改操作时
2022-06-11
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
1 / 2