mysql5.7强制指定驱动表与被驱动表straight_join
select * from 驱动表 t1 STRAIGHT_JOIN 被驱动表 t2 ON t1.order_id = t2.order_id;
select * from t_order t1 STRAIGHT_JOIN t_order_detail t2 ON t1.order_id = t2.order_id;
这样强制指定驱动表和被驱动表的好处是可以让mysql在计算SQL执行成本时按照自己的计划进行。也就是说如果你认为自己比MYSQL的SQL优化器更牛B,认为使用t1作为驱动表更好,这样就是执行成本更低。
rows_examined_per_scan: 321 表示从驱动表结果集预估有321条记录会对被驱动表进行扫描
rows_produced_per_join: 321 如果这两个数值一样,表示filter =100 即过滤100%的数据,但是如果这个值比上一个值少,则可能使用了覆盖索引等进行了优化,那么filter也会少于100%
filtered: 100
prefix_cost是总成本
end.