MySql Query Optimizer
MySQL常见瓶颈
CPU、IO、服务器硬件
explain
1、是什么
使用explain关键字可以模拟优化器执行
官网
2、能干嘛
表的读取顺序
数据读取操作的操作类型
哪些索引可以使用
哪些索引被实际使用
表之间的引用
每张表有多少行被优化器查询
3、怎么玩
Explain + SQL语句
id:
select查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序
三种情况:
id相同,执行顺序由上至下
id不同:如果是子查询,id的序号会被递增,id值越大优先级越高,越先被执行
id相同不同,同时存在:
select_type:
simple:简单的select查询,查询中不包含子查询或者union查询
primar:查询中若包含人和复杂的子查询,最外层查询则被标记为
subquery:在select或者where列表中包含了子查询
derived:在from列表中包含的子查询被标记为derived(衍生),MySQL会递归执行这些子查询,把结果放在历史表里。
union:若第二个select出现在union之后,则被标记为union;若union包含在from子句的子查询中,外层select将被标记为derived。
union result:从union表获取结果的select。
table:
type&#