@@ -264,7 +264,7 @@ SHOW PROCESSLIST:查看当前 MySQL 在进行的线程,可以实时地查看
2642641. 客户端发送一条查询给服务器
2652652. 服务器先会检查查询缓存,如果命中了缓存,则立即返回存储在缓存中的结果(一般是 K-V 键值对),否则进入下一阶段
2662663. 分析器进行 SQL 分析,再由优化器生成对应的执行计划
267- 4. MySQL 根据优化器生成的执行计划 ,调用存储引擎的 API 来执行查询
267+ 4. 执行器根据优化器生成的执行计划 ,调用存储引擎的 API 来执行查询
2682685. 将结果返回给客户端
269269
270270大多数情况下不建议使用查询缓存,因为查询缓存往往弊大于利
@@ -434,7 +434,7 @@ MySQL 中保存着两种统计数据:
434434* innodb_table_stats 存储了表的统计数据,每一条记录对应着一个表的统计数据
435435* innodb_index_stats 存储了索引的统计数据,每一条记录对应着一个索引的一个统计项的数据
436436
437- MySQL 在真正执行语句之前,并不能精确地知道满足条件的记录有多少条,只能根据统计信息来估算记录,统计信息就是索引的区分度, 一个索引上不同的值的个数(比如性别只能是男女,就是 2 ),称之为基数(cardinality),**基数越大说明区分度越好**
437+ MySQL 在真正执行语句之前,并不能精确地知道满足条件的记录有多少条,只能根据统计信息来估算记录,统计信息就是索引的区分度, 一个索引上不同的值的个数(比如性别只能是男女,就是 2 ),称之为基数(cardinality),**基数越大说明区分度越好**
438438
439439通过**采样统计**来获取基数,InnoDB 默认会选择 N 个数据页,统计这些页面上的不同值得到一个平均值,然后乘以这个索引的页面数,就得到了这个索引的基数
440440
@@ -5041,7 +5041,7 @@ CREATE INDEX idx_seller_name_sta_addr ON tb_seller(name, status, address); # 联
50415041
50425042* **字符串不加单引号**,造成索引失效:隐式类型转换,当字符串和数字比较时会**把字符串转化为数字**
50435043
5044- 在查询时, 没有对字符串加单引号,查询优化器会调用 CAST 函数将 status 转换为 int 进行比较,造成索引失效
5044+ 没有对字符串加单引号,查询优化器会调用 CAST 函数将 status 转换为 int 进行比较,造成索引失效
50455045
50465046 ```mysql
50475047 EXPLAIN SELECT * FROM tb_seller WHERE name='小米科技' AND status = 1;
@@ -5134,7 +5134,7 @@ CREATE INDEX idx_seller_name_sta_addr ON tb_seller(name, status, address); # 联
51345134 EXPLAIN SELECT * FROM tb_seller WHERE sellerId NOT IN ('alibaba','huawei');
51355135 ```
51365136
5137- * [MySQL 实战 45 讲](https://time.geekbang.org/column/article/74687)该章节最后提出了一种场景 ,获取到数据以后 Server 层还会做判断
5137+ * [MySQL 实战 45 讲](https://time.geekbang.org/column/article/74687)该章节最后提出了一种慢查询场景 ,获取到数据以后 Server 层还会做判断
51385138
51395139
51405140
@@ -7406,7 +7406,7 @@ InnoDB 会对间隙(GAP)进行加锁,就是间隙锁 (RR 隔离级别下
74067406
74077407InnoDB 加锁的基本单位是 next-key lock,该锁是行锁和 gap lock 的组合(X or S 锁),但是加锁过程是分为间隙锁和行锁两段执行
74087408
7409- * 可以**保护当前记录和前面的间隙**,遵循左开右闭原则,单纯的是间隙锁左开右开
7409+ * 可以**保护当前记录和前面的间隙**,遵循左开右闭原则,单纯的间隙锁是左开右开
74107410* 假设有 10、11、13,那么可能的间隙锁包括:(负无穷,10]、(10,11]、(11,13]、(13,正无穷)
74117411
74127412几种索引的加锁情况:
0 commit comments