MYSQL——执行计划详解
原文 我们经常使用MYSQL的执行计划来查看SQL语句的执行效率,接下来分析下执行计划各个显示的内容。 EXPLAIN SELECT * FROM users WHERE id IN (SELECT userID FROMuser_address WHERE address = "湖南长沙麓谷") ; 学习目标:看过这篇文章后会简要分析sql执行的性能,建立合理的索引 执行计划的id select查询的序列号,标识执行的顺序: 1.id相同,执行顺序由上至下; 2.id不同,如果是子查询,id号会递增,id值越大优先级越高,越先被执行 执行计划的select_type 查询的类型,主要用于区分普通查询、联合查询、子查询等: 1.SIMPLE:简单的select查询,查询中不包含子查询或者union 2.PRIMARY:查询总包含子查询,最外层则被标记为primary 3.SUBQUERY/MATERIALIZED:SUBQUERY表示在select或where列表中包含了子查询,MATERIALIZED表示where后边in条件的子查询 4.UNION:表示union中的第二个或者后面的select语句 5.UNION RESULT:union的结果 对于 UNION 和 UNION RESULT 可以通过下面的例子展现: EXPLAIN SELECT * FROM users