MySQL explain 详解
每个客户端都会在服务器进程中拥有一个线程。在MySQL5.5中更新了API,支持线程池插件,可以使用池中少量的线程来服务大量的连接
优化
MySQL会解析查询,并创建内部数据结构,然后对其进行优化(重写查询、决定表的读取顺序、选择合适的索引),MySQL提供了了explain关键字来判断优化过程的各个因素。作为程序员,也可以根据这个关键字来判断出自己写出的select是否合理。
explain 详解 (只包含了对主要列进行解释)
-
id:标识SELECT所属的行,按照从大到小执行,只有复杂查询时,id才会存在多个。(复杂查询:包含有子查询,union查询)
-
select_type:标识是简单还是复杂查询,如果是复杂查询会标识出是哪种复杂查询。每种复杂查询标识如下:
1、SIMPLE:查询不包括子查询和UNION
2、PRIMARY:查询有子查询,最外层标记为PRIMARY
3、SUBQUERY:select列表中包含有select。如:select a,(select b from t) from t1
其中select b from t 为SUBQUERY。
4、DERIVED:包含在from子局中的select。如:
select c.a from (select a from t) as c
其中select a from t&#x