一、EXPLAN_rows字段介绍
### --- rows 介绍 ——> 表示MySQL根据表中的统计信息和索引选择,估计所需记录所需读取的行数; ——> 使用越少越好like 查询,会产生全表扫描, L2中有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) ——> 数据读取操作类型。(对应id) ——> 数据读取操作类型。select_type) ——> 可以使用哪些索引?(对应possible_keys) ——> 实际使用哪些索引?(对应key) ——> 优化器查询每张表中有多少行。(对应rows) ——> 评估sql质量和效率 (对应type)