Mysql Explain

tech2024-12-10  5

Explain

explain 输出sql的执行计划

展示信息

示例

字段信息

select_type查询类型

simple

subquery&&primary

primary&union&derived

select age from lsy where age=24 生成的是派生表

join查询类型

system
const

最多只有一行,利用主键或者 唯一索引匹配常量

eq_ref&&range

lsy.id>=1这里主键使用了范围查询,所有是range 连接字段都是主键,类型是eq_ref eq_ref前表中的每一行在后表中都有唯一对应的

ref和eq_ref的区别
eq_ref select A.text, B.text where A.ID = B.ID foreach (rowA in A) { if (existsInBRowWithID(rowA.id) { addToResult(rowA.text, getRowInBWithID(rowA.id).text); break; } } ref c.id是索引,但不是唯一索引,可能是重复记录 select A.text, C.text where A.ID = C.ID foreach (rowA in A) { foreach (rowC in C) { if (rowA.id == rowC.id) { addToResult(rowA.text, rowC.text); } } }
index 扫描全部数据,按索引去查询指定的数据

all 扫描全部数据,没有按索引列去查询,查找所有结果

最新回复(0)