MySql 使用explain分析查询


今天写了个慢到哭的查询,想用explain分析下执行计划,后来发现explain也是有局限性的:


EXPLAIN不会告诉你关于触发器、存储过程的信息或用户自定义函数对查询的影响情况
•EXPLAIN不考虑各种Cache
•EXPLAIN不能显示MySQL在执行查询时所作的优化工作
•部分统计信息是估算的,并非精确值
•EXPALIN只能解释SELECT操作,其他操作要重写为SELECT后查看执行计划

好吧,那我就把存储过程,转换为普通sql进行分析。


MySql 使用explain分析查询


MySql 使用explain分析查询


id:标识符,select查询的序列号;

select_type:标识select语句的类型,primary表示主查询或最外层的查询语句;DEPENDENT SUBQUERY子查询中的第一个select,取决于外面的查询;

table:查询的表;

type:标识表的连接类型;index标识扫描到了索引树;all表示整表扫描;

possible_key:mysql能使用哪个索引在该表中找到行;

key:查询中实际使用的索引;

key_len:mysql选择的索引字段按字节计算的长度。

rows:显示mysql在表中进行查询时必须检查的行数;

extra:该列mysql在处理查询时候的详细信息;


与explain类似的关键字 :DESCRIBE 简写:DESC;


分析我的存储过程结论:我建的索引基本没用上,还是整表的扫描;准备将聚集索引分开;优化下嵌套查询;


结尾彩蛋:



MySql 使用explain分析查询












上一篇:微信小程序 wx.request


下一篇:微信小程序wx.request请求服务器json数据并渲染到页面