|NO.Z.00152|——————————|BigDataEnd|——|Java&MySQL.高级.V24|——|MySQL.v25|EXPLAIN_rows字段介绍|

一、EXPLAN_rows字段介绍
### --- rows 介绍
——>        表示MySQL根据表统计信息及索引选用情况,估算的找到所需的记录所需要读取的行数;
——>        越少越好使用like 查询,会产生全表扫描, L2中有3条记录,就需要读取3条记录进行查找

EXPLAIN SELECT * FROM L1,L2 WHERE L1.id = L2.id AND L2.title LIKE '%la%';
mysql> EXPLAIN SELECT * FROM L1,L2 WHERE L1.id = L2.id AND L2.title LIKE '%la%';
+----+-------------+-------+------------+--------+---------------+---------+---------+--------------------+------+----------+-------------+
| id | select_type | table | partitions | type   | possible_keys | key     | key_len | ref                | rows | filtered | Extra       |
+----+-------------+-------+------------+--------+---------------+---------+---------+--------------------+------+----------+-------------+
|  1 | SIMPLE      | L1    | NULL       | ALL    | PRIMARY       | NULL    | NULL    | NULL               |    1 |   100.00 | NULL        |
|  1 | SIMPLE      | L2    | NULL       | eq_ref | PRIMARY       | PRIMARY | 4       | test_explain.L1.id |    1 |   100.00 | Using where |
+----+-------------+-------+------------+--------+---------------+---------+---------+--------------------+------+----------+-------------+
### --- 如果使用等值查询, 则可以直接找到要查询的记录,返回即可,所以只需要读取一条

EXPLAIN SELECT * FROM L1,L2 WHERE L1.id = L2.id AND L2.title = 'yanqi03';
mysql> EXPLAIN SELECT * FROM L1,L2 WHERE L1.id = L2.id AND L2.title = 'yanqi03';
+----+-------------+-------+------------+--------+-------------------+---------+---------+--------------------+------+----------+-------------+
| id | select_type | table | partitions | type   | possible_keys     | key     | key_len | ref                | rows | filtered | Extra       |
+----+-------------+-------+------------+--------+-------------------+---------+---------+--------------------+------+----------+-------------+
|  1 | SIMPLE      | L1    | NULL       | ALL    | PRIMARY           | NULL    | NULL    | NULL               |    1 |   100.00 | NULL        |
|  1 | SIMPLE      | L2    | NULL       | eq_ref | PRIMARY,idx_title | PRIMARY | 4       | test_explain.L1.id |    1 |   100.00 | Using where |
+----+-------------+-------+------------+--------+-------------------+---------+---------+--------------------+------+----------+-------------+
### --- 总结: 当我们需要优化一个SQL语句的时候,我们需要知道该SQL的执行计划,
~~~     比如是全表扫描,还是索引扫描; 使用explain 关键字可以模拟优化器执行sql 语句,
~~~     从而知道mysql 是如何处理sql 语句的,方便我们开发人员有针对性的对SQL进行优化.

——>        表的读取顺序。(对应id)
——>        数据读取操作的操作类型。(对应select_type)
——>        哪些索引可以使用。(对应possible_keys)
——>        哪些索引被实际使用。(对应key)
——>        每张表有多少行被优化器查询。(对应rows)
——>        评估sql的质量与效率 (对应type)

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

 

posted on   yanqi_vip  阅读(29)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示