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.

支付宝扫一扫,为女程序员打赏!
作者:梦幻朵颜
版权:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/zhuwenjoyce/p/15017437.html