🔄Update: MySQL
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
# 执行一条 SQL 语句的过程
|
||||
|
||||
## 连接器
|
||||
|
||||
- 连接到服务(TCP)
|
||||
- 验证用户身份
|
||||
- 验证用户权限
|
||||
|
||||
## 解析器
|
||||
|
||||
- 词法分析
|
||||
- 语法分析
|
||||
|
||||
## 预处理器
|
||||
|
||||
- 检查表以及字段
|
||||
- 扩展 * 符号
|
||||
|
||||
## 优化器
|
||||
|
||||
- 决定使用的索引
|
||||
|
||||
## 执行器
|
||||
|
||||
- 与存储引擎交互
|
||||
|
||||
*三种交互*
|
||||
|
||||
- 主键索引
|
||||
- 全表扫描
|
||||
- 索引下推
|
||||
@@ -0,0 +1,38 @@
|
||||
# 存放文件
|
||||
|
||||
`InnoDB`
|
||||
|
||||
```text
|
||||
|-- db.opt
|
||||
| 默认字符集、字符校验规则
|
||||
|-- t_order.frm
|
||||
| 表结构
|
||||
|-- t_order.ibd
|
||||
| 表数据
|
||||
```
|
||||
|
||||
- 字符集
|
||||
- 表结构
|
||||
- 表数据
|
||||
|
||||
# 表数据空间
|
||||
|
||||

|
||||
|
||||
- 行
|
||||
- 页
|
||||
- 读写单位
|
||||
- 默认 16KB
|
||||
- 区
|
||||
- 段
|
||||
|
||||
# 行格式
|
||||
|
||||
- 变长字段长度列表
|
||||
- NULL 列表
|
||||
- 记录头
|
||||
- 真实数据
|
||||
- 隐藏字段
|
||||
- row_id
|
||||
- trx_id
|
||||
- roll_pointer
|
||||
@@ -0,0 +1,22 @@
|
||||
# B+ Tree 索引
|
||||
|
||||
## 适用
|
||||
|
||||
- 主键索引
|
||||
- 叶子结点存放具体数据
|
||||
- 二级索引
|
||||
- 叶子结点存放主键值
|
||||
- 回表主键索引
|
||||
|
||||
## B+ vs B
|
||||
|
||||
- 基于范围
|
||||
- 数据量小
|
||||
|
||||
## B+ vs 二叉
|
||||
|
||||
- 深度
|
||||
|
||||
## B+ vs Hash
|
||||
|
||||
- 等值查询
|
||||
@@ -0,0 +1,24 @@
|
||||
# 联合索引
|
||||
|
||||
- 二级索引的一种
|
||||
|
||||
## 最左匹配
|
||||
|
||||
有序 -> 匹配
|
||||
|
||||
## 范围查询
|
||||
|
||||
> Q: `select * from t_table where a > 1 and b = 2` 联合索引(a, b)哪一个字段用到了联合索引的 B+Tree?
|
||||
|
||||
|
||||
- a
|
||||
- 在符合 `a > 1` 条件的 `b` 中,字段值是无序的。
|
||||
|
||||
> Q: `select * from t_table where a >= 1 and b = 2` 联合索引(a, b)哪一个字段用到了联合索引的 B+Tree?
|
||||
|
||||
- a, b
|
||||
- 因为能确定唯一起始点
|
||||
|
||||
## 索引下推
|
||||
|
||||
- 提前判断减少回表
|
||||
Reference in New Issue
Block a user