mysql Using join buffer (Block Nested Loop) join连接查询优化

最近在优化链表查询的时候发现就算链接的表里面不到1w的数据链接查询也需要10多秒,这个速度简直不能忍受

 

通过EXPLAIN发现,extra中有数据是Using join buffer (Block Nested Loop),而其它关联的表都是Using index,最后使用排除法发现当extra为Using join buffer (Block Nested Loop)是最慢的,就算加了索引也没用,后来发现是索引加的不对

 

应该在链接的条件列上加索引(两个表都要加),并且链接的条件列需要在索引的首位(表所有索引中的第一个索引列),使用此方法完成索引修改之后,速度瞬间提升了,以前要10多秒的也提升到了毫秒级

 

实例

 

 

添加索引

 

 效果:

 

posted @ 2021-01-04 17:52  飞龙在生  阅读(12018)  评论(1编辑  收藏  举报