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

 

實例

 

 

添加索引

 

 效果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM