From 9af6ad877b335004a2ea23ed186893194f9933c0 Mon Sep 17 00:00:00 2001
From: heibaiying <2806718453@qq.com>
Date: Wed, 24 Jul 2019 17:49:44 +0800
Subject: [PATCH] =?UTF-8?q?mysql=20=E7=B4=A2=E5=BC=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
notes/MySQL_EXPLAIN.md | 226 +++++++++++++++++++++++++---------
notes/MySQL_索引.md | 51 ++++++++
pictures/employees-schema.png | Bin 0 -> 64839 bytes
3 files changed, 222 insertions(+), 55 deletions(-)
create mode 100644 notes/MySQL_索引.md
create mode 100644 pictures/employees-schema.png
diff --git a/notes/MySQL_EXPLAIN.md b/notes/MySQL_EXPLAIN.md
index 8c470b7..8d0101e 100644
--- a/notes/MySQL_EXPLAIN.md
+++ b/notes/MySQL_EXPLAIN.md
@@ -3,93 +3,209 @@
EXPLAIN 关键字可以用于获取所修饰语句执行计划的相关信息,在 MySQL 8.0 中,EXPLAIN 支持大多数常见的语句,如 SELECT 、DELETE 、INSERT 、REPLACE、和 UPDATE 语句。示例如下:
```sql
--- 查询工资大于100000的雇员所在部门的编号
-EXPLAIN SELECT * FROM dept_emp WHERE emp_no IN (SELECT emp_no FROM salaries WHERE salary > 100000) LIMIT 100;
+mysql> EXPLAIN SELECT * FROM employees;
++----+-------------+-----------+------+---------------+------+---------+------+--------+-------+
+| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
++----+-------------+-----------+------+---------------+------+---------+------+--------+-------+
+| 1 | SIMPLE | employees | ALL | NULL | NULL | NULL | NULL | 299379 | NULL |
++----+-------------+-----------+------+---------------+------+---------+------+--------+-------+
```
-
+注:本篇文章所有的测试数据来均源于 MySQL 官方提供的 [Employees Sample Database](https://dev.mysql.com/doc/employee/en/),其数据库结构如下:
+
+
+以下对 EXPLAIN 输出结果中各个字段的含义及其可能的取值范围做详细的介绍:
+
+## 1. id
+
+ id 字段为行标识符,同时也表示该行语句执行的优先级,值越大则优先级越高。如果某行语句引用了其他行结果集的并集,则该值可以为 NULL。示例如下:
```sql
-
-mysql> EXPLAIN SELECT * FROM dept_emp WHERE emp_no IN (SELECT emp_no FROM salaries WHERE salary > 100000) LIMIT 100;
-+----+-------------+----------+------+---------------+---------+---------+---------------------------+--------+-----------------------------------+
-| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
-+----+-------------+----------+------+---------------+---------+---------+---------------------------+--------+-----------------------------------+
-| 1 | SIMPLE | dept_emp | ALL | PRIMARY | NULL | NULL | NULL | 331570 | NULL |
-| 1 | SIMPLE | salaries | ref | PRIMARY | PRIMARY | 4 | employees.dept_emp.emp_no | 4 | Using where; FirstMatch(dept_emp) |
-+----+-------------+----------+------+---------------+---------+---------+---------------------------+--------+-----------------------------------+
-```
-
-> 注:本篇文章测试数据来源于 MySQL 官方提供的 [Employees Sample Database](https://dev.mysql.com/doc/employee/en/)
-
-### 1. id
-
-每个 SELECT 语句都会对应输出结果中的一行数据,id 列是该行数据的编号,如果在语句当中没有子查询或者联合查询,则每行数据的编号都是 1 。如果涉及到 FROM 子查询 或者 UNION 查询,则编号通常会按照其在原始语句中的位置排序。示例如下:
-
-```sql
--- 该FROM字句只是用于演示
-mysql> EXPLAIN SELECT COUNT(1) FROM (SELECT emp_no FROM salaries) AS s;
-+----+-------------+------------+-------+
-| id | select_type | table | type |
-+----+-------------+------------+-------+
-| 1 | PRIMARY | | ALL |
-| 2 | DERIVED | salaries | index |
-+----+-------------+------------+-------+ ......
+-- 该FROM字句只是用于演示,并没有任何实际意义
+mysql> EXPLAIN SELECT COUNT(1) FROM (SELECT emp_no FROM salaries) AS t;
++----+-------------+------------+-------+---------------+---------+---------+------+---------+-------------+
+| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
++----+-------------+------------+-------+---------------+---------+---------+------+---------+-------------+
+| 1 | PRIMARY | | ALL | NULL | NULL | NULL | NULL | 2757635 | NULL |
+| 2 | DERIVED | salaries | index | NULL | PRIMARY | 7 | NULL | 2757635 | Using index |
++----+-------------+------------+-------+---------------+---------+---------+------+---------+-------------+
```
```sql
-- 查询工资大于500000或部门编号等于d007的所有雇员的编号
-mysql> EXPLAIN SELECT emp_no FROM salaries WHERE salary>500000 UNION ALL SELECT emp_no FROM dept_emp WHERE dept_no = "d007";
-+----+--------------+------------+------+
-| id | select_type | table | type |
-+----+--------------+------------+------+
-| 1 | PRIMARY | salaries | ALL |
-| 2 | UNION | dept_emp | ref |
-| NULL | UNION RESULT | | ALL |
-+----+--------------+------------+------+ ......
+mysql> EXPLAIN SELECT emp_no FROM salaries WHERE salary>500000 UNION ALL SELECT emp_no FROM dept_emp WHERE dept_no = "d007";
++----+--------------+------------+------+---------------+---------+---------+-------+---------+--------------------------+
+| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
++----+--------------+------------+------+---------------+---------+---------+-------+---------+--------------------------+
+| 1 | PRIMARY | salaries | ALL | NULL | NULL | NULL | NULL | 2837161 | Using where |
+| 2 | UNION | dept_emp | ref | dept_no | dept_no | 4 | const | 91566 | Using where; Using index |
+| NULL | UNION RESULT | | ALL | NULL | NULL | NULL | NULL | NULL | Using temporary |
++----+--------------+------------+------+---------------+---------+---------+-------+---------+--------------------------+
```
-### 2. select_type
+## 2. select_type
-### 3. table
++ **SIMPLE**:不包含子查询或者 UNION 操作的查询;
++ **PRIMARY**:查询中如果包含任何子查询,那么最外层的查询则被标记为 PRIMARY ;
++ **SUBQUERY**:子查询中第一个 SELECT ;
++ **DEPENDENT SUBQUERY**:子查询中的第一个 SELECT,取决于外部查询;
++ **UNION**:UNION 操作的第二个或者之后的查询;
++ **DEPENDENT UNION**:UNION 操作的第二个或者之后的查询,取决于外部查询;
++ **UNION RESULT**:UNION 产生的结果集;
++ **DERIVED**:出现在 FROM 字句中的子查询。
+
+这里常用的类型在上面的示例中都出现过,下面演示查询类型为 SUBQUERY 的情况,示例如下:
+
+```sql
+-- 根据员工编号查询员工姓名及其工资总和
+mysql> explain select first_name,(select sum(salary) from salaries where emp_no = 10001) from employees where emp_no = 10001;
++----+-------------+-----------+-------+---------------+---------+---------+-------+------+-------+
+| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
++----+-------------+-----------+-------+---------------+---------+---------+-------+------+-------+
+| 1 | PRIMARY | employees | const | PRIMARY | PRIMARY | 4 | const | 1 | NULL |
+| 2 | SUBQUERY | salaries | ref | PRIMARY | PRIMARY | 4 | const | 17 | NULL |
++----+-------------+-----------+-------+---------------+---------+---------+-------+------+-------+
+```
+
+## 3. table
- ****:输出结果中编号为 M 的行与编号为 N 的行的结果集的并集。
-- ****:输出结果中编号为 N 的行的结果集,使用 derived 修饰表示这是一个派生结果集,如来自于 FROM 子句中的子查询 。
+- ****:输出结果中编号为 N 的行的结果集,使用 derived 修饰表示这是一个派生结果集,如来自于 FROM 子句中的查询 。
- ****:输出结果中编号为 N 的行的结果集,使用 subquery 修饰表示其来源于一个物化子查询。
-### 4. type
+## 4. type
-这个字段表示 MySQL 如何查找表中的行。常见参数按照查找性能由低到高,排序如下:
+这个字段非常重要,它表示 MySQL 使用何种方式来查找目标数据,不同查找方式会导致不同的性能开销,常见查找方式及其性能表现按照由高到低的顺序排序如下:
-+ ALL:全表扫描;
-+ index:按照索引顺序而不是行顺序进行全表扫描;
-+ range:范围扫描;
-+ ref:
+**1. system**:这是 const 类型的一个特例,只会出现在待查询的表只有一行数据的情况下。
-### 5. possible_keys
+**2. const**:出现在主键或唯一索引与常量值进行比较的场景下,这种情况下查询性能是最优的。
+
+```sql
+mysql> explain select * from employees where emp_no = 10008;
++----+-------------+-----------+-------+---------------+---------+---------+-------+------+-------+
+| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
++----+-------------+-----------+-------+---------------+---------+---------+-------+------+-------+
+| 1 | SIMPLE | employees | const | PRIMARY | PRIMARY | 4 | const | 1 | NULL |
++----+-------------+-----------+-------+---------------+---------+---------+-------+------+-------+
+```
+
+**3. eq_ref**:在连接查询中,当连接使用索引的所有部分并且索引是 PRIMARY KEY 或 UNIQUE NOT NULL 索引时使用它。
+
+```sql
+-- 这里员工部门关系表 dept_no 的联合主键为 emp_no + dept_no ,即员工编号+部门标号
+mysql> explain select * from employees e,dept_emp d where e.emp_no = d.emp_no and dept_no = "d005";
++----+-------------+-------+--------+-----------------+---------+---------+--------------------+------+-----------------------+
+| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
++----+-------------+-------+--------+-----------------+---------+---------+--------------------+------+-----------------------+
+| 1 | SIMPLE | d | ref | PRIMARY,dept_no | dept_no | 4 | const | 1 | Using index condition |
+| 1 | SIMPLE | e | eq_ref | PRIMARY | PRIMARY | 4 | employees.d.emp_no | 1 | NULL |
++----+-------------+-------+--------+-----------------+---------+---------+--------------------+------+-----------------------+
+```
+
+**4. ref**:通常在连接查询中,如果连接仅使用了前缀索引或用于连接的条件不是 PRIMARY KEY 或 UNIQUE 索引时使用它。
+
+```sql
+-- 这里仅使用了前缀索引emp_no,所以其类型为 ref , 而不是 eq_ref
+mysql> explain select * from employees e,dept_emp d where e.emp_no = d.emp_no;
++----+-------------+-------+------+---------------+---------+---------+--------------------+--------+-------+
+| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
++----+-------------+-------+------+---------------+---------+---------+--------------------+--------+-------+
+| 1 | SIMPLE | e | ALL | PRIMARY | NULL | NULL | NULL | 299379 | NULL |
+| 1 | SIMPLE | d | ref | PRIMARY | PRIMARY | 4 | employees.e.emp_no | 1 | NULL |
++----+-------------+-------+------+---------------+---------+---------+--------------------+--------+-------+
+```
+
+**5. ref_or_null**:类似于 ref 类型的查询,但是附加了对 NULL 值列的查询。这里给出示例语句:
+
+```sql
+SELECT * FROM ref_table WHERE key_column=expr OR key_column IS NULL;
+```
+
+**6. index_merge**:该联接类型表示使用了索引进行合并优化,示例如下:
+
+```
+mysql> explain select * from dept_emp where dept_no = "d004" and emp_no < 10020;
++----+-------------+----------+-------------+-----------------+-----------------+---------+------+------+-----------------------------------------------+
+| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
++----+-------------+----------+-------------+-----------------+-----------------+---------+------+------+-----------------------------------------------+
+| 1 | SIMPLE | dept_emp | index_merge | PRIMARY,dept_no | dept_no,PRIMARY | 8,4 | NULL | 1 | Using intersect(dept_no,PRIMARY); Using where |
++----+-------------+----------+-------------+-----------------+-----------------+---------+------+------+-----------------------------------------------+
+```
+
+**7. range**:使用索引进行范围扫描,常见于 between、> 、< 这样的查询条件。
+
+```sql
+mysql> explain select * from employees where emp_no > 10000;
++----+-------------+-----------+-------+---------------+---------+---------+------+--------+-------------+
+| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
++----+-------------+-----------+-------+---------------+---------+---------+------+--------+-------------+
+| 1 | SIMPLE | employees | range | PRIMARY | PRIMARY | 4 | NULL | 149689 | Using where |
++----+-------------+-----------+-------+---------------+---------+---------+------+--------+-------------+
+```
+
+**8. index**:索引连接类型与 ALL 相同,只是扫描的是索引树,通常出现在索引是该查询的覆盖索引的情况:
+
+```sql
+mysql> explain select emp_no from employees;
++----+-------------+-----------+-------+---------------+---------+---------+------+--------+-------------+
+| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
++----+-------------+-----------+-------+---------------+---------+---------+------+--------+-------------+
+| 1 | SIMPLE | employees | index | NULL | PRIMARY | 4 | NULL | 299379 | Using index |
++----+-------------+-----------+-------+---------------+---------+---------+------+--------+-------------+
+```
+
+**9. ALL**:全表扫描,效率最差的查找方式。
+
+```sql
+mysql> explain select * from employees where first_name ="Bezalel";
++----+-------------+-----------+------+---------------+------+---------+------+--------+-------------+
+| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
++----+-------------+-----------+------+---------------+------+---------+------+--------+-------------+
+| 1 | SIMPLE | employees | ALL | NULL | NULL | NULL | NULL | 299379 | Using where |
++----+-------------+-----------+------+---------------+------+---------+------+--------+-------------+
+```
+
+## 5. possible_keys
表示在执行过程中可能会用到哪些索引来进行优化。
-### 6. key
+## 6. key
表示在执行过程中实际用到的用于优化的索引。
-### 7. key_len
+## 7. key_len
表示使用到的索引的字节数。
-### 8. ref
+## 8. ref
+显示哪些列或常量与 key 列中指定的索引进行比较。
-
-### 9. rows
+## 9. rows
MySQL 为了找到目标行而读取的所有行的数量,这是一个估算的值。
-### 10. Extra
+## 10. Extra
-用于显示额外的信息,常用
+用于显示额外的信息,常见参数如下:
-### 11. partitions
++ **Distinct**:优化 distinct 操作,再找到第一匹配的元组后即停止找同样值的动作;
++ **Not exists**:使用 not exists 来优化查询;
++ **Using filesort**:使用额外操作进行排序,通常会出现在 order by 或 group by 查询中;
++ **Using index**:使用了覆盖索引进行查询;
++ **Using temporary**:使用临时表来处理查询,常见于排序、子查询和分组查询;
++ **Using where**:使用 WHERE 条件来过滤数据;
++ **select tables optimized away**:直接通过索引来获取数据,不需要访问表。
-显示查询结果集中记录所在的分区。如果目标表不是分区表,则值为 null 。
\ No newline at end of file
+## 11. partitions
+
+显示查询结果集中记录所在的分区。如果目标表不是分区表,则值为 null 。
+
+
+
+
+
+## 参考资料
+
+MySQL官方文档:https://dev.mysql.com/doc/refman/8.0/en/explain-output.html
\ No newline at end of file
diff --git a/notes/MySQL_索引.md b/notes/MySQL_索引.md
new file mode 100644
index 0000000..e6c632d
--- /dev/null
+++ b/notes/MySQL_索引.md
@@ -0,0 +1,51 @@
+## B+ tree 索引
+
+B-Tree 适用于以下类型的查找:
+
++ **全值匹配**:以索引为条件进行精确查找。如 `emp_no` 字段为索引,查询条件为 `emp_no = 10008`;
++ **前缀匹配**:以联合索引的前缀为查找条件。如 `emp_no` 和 `dept_no` 为联合索引,查找条件为 `emp_no = 10008`;
++ **列前缀匹配**:匹配索引列的值的开头部分。如 `dept_no` 为索引,查询条件为 `dept_no like "d1%"`;
++ **匹配范围值**:按照索引列匹配一定范围内的值。如 `emp_no` 字段为索引,查询条件为 `emp_no > 10008`;
++ **只访问索引的查询**:如 `emp_no` 字段为索引,查询语句为 `select emp_no from employees`;
++ **精确匹配某一列并范围匹配某一列**:如 `emp_no` 和 `dept_no` 为联合索引,查找条件为 `dept_no = "d004" and emp_no < 10020`。
+
+## 哈希索引
+
+使用哈希索引时,存储引擎会对索引列的值进行哈希运算,并将计算出的哈希值和指向该行数据的指针存储在索引中,因此它更适用于等值比较查询,而不是范围查询。在建立哈希索引时,需要选取选择性比较高的列,即列上的数据不容易重复 (如身份证号),这样可以尽量避免哈希冲突。因为哈希索引并不需要存储索引列的数据,所以其结构比较紧凑,对应的查询速度也比较快。
+
+InnoDB 引擎有一个名为 “自适应哈希索引 (adaptive hash index)” 的功能,当某些索引值被频繁使用时,它会在内存中基于 B-Tree 索引在创建一个哈希索引,从而让 B-Tree 索引具备哈希索引的优点,如快速查找。
+
+## 索引的优点
+
++ 索引极大减少了服务器需要扫描的数据量;
++ 索引可以帮助服务器避免排序和临时表;
++ 索引可以将随机 IO;
+
+## 索引的创建与使用策略
+
+在查询时,应该避免在索引列上使用函数或者表达式;
+
+对于多列索引,应该按照使用频率由高到低的顺序建立联合索引;
+
+建立索引时,应该考虑查询时候的排序和分组的需求。只有当索引列的顺序和 ORDER BY 字句的顺序完全一致,并且遵循同样的升序或降序规则时候,MySQL 才会使用索引来对结果做排序。
+
+尽量避免创建冗余的索引。通常会出现以下两种情况的冗余:
+
+如已经存在索引 (A,B),接着又创建了索引 A,此时会出现冗余,因为索引 A 只是索引 (A,B) 的前缀索引;
+
+如为主键列再次创建索引,因为主键已经是唯一索引了,此时再创建就会出现冗余。
+
+
+
+## 参考资料
+
+1. [ InnoDB 数据页解析](http://mysql.taobao.org/monthly/2018/04/03/)
+
+2. [MySQL索引背后的数据结构及算法原理](https://blog.codinglabs.org/articles/theory-of-mysql-index.html)
+
+
+
+
+
+
+
diff --git a/pictures/employees-schema.png b/pictures/employees-schema.png
new file mode 100644
index 0000000000000000000000000000000000000000..b7ea0546a1c0c9f1a35e4e4dba043a072a7c05b3
GIT binary patch
literal 64839
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 |