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多秒的也提升到了毫秒级

 

mysql优化经验不多,这种方法我试验可以,不排除运气的情况,实际是否有用需要大家自己再验证

 

你可能感兴趣的:(sql)