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.

posted on 2021-07-15 20:42  梦幻朵颜  阅读(1467)  评论(0编辑  收藏  举报