MySQL小表join大表的正确使用姿势(straight_join 关键字的使用)

血红的双手。 提交于 2020-01-09 12:12:24

网上有种说法是:由于一般是采用小表join大表的方式(可以提高效率),所以有人说将小表放在左边,让它先执行,记住,这种说法是错误的!!!有例为证:

我们看上例:

film inner join film_actor using(film_id) inner join actor using(actor_id)

的执行顺序是——

actor>>film_actor>>film 

如下图:

使用 straight_join 关键字可以保证严格按照书写顺序来作为表的执行顺序,但是却牺牲了性能。

上图中没有使用该关键字,要扫描的行数比使用了 straight_join 关键字的行数要少很多,也就是MySQL自动进行了优化

我们可以使用

show status like 'last_query_cost'

来查询上一条sql需要查询的数据页数量

7892 VS 8885

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!