MySQL數據join不走索引問題排查


有三張表需要關聯查詢,關聯關系如下

A表

B表 關聯 A.col = B.id

C表 關聯 B.col = C.id

問題出在 B表 關聯 A.col = B.id,為啥?執行計划就是不走id主鍵,C表 關聯 B.col = C.id都可以正常走

【解決思路】

1、嘗試單表查詢,驗證索引是否正常 試了一下單表查詢B是可以走主鍵索引,正常,排出索引問題

2、嘗試優化SQL 修改了一下SQL,將left join 分別改為inner join,join和子查詢,幾種方式都不能走索引,排出優化可能

3、嘗試在其他環境執行,發現在其他環境下可以正常,走索引,說明不是SQL的問題,排出SQL問題。

既然有環境可以,肯定是哪里配置有問題,慢慢對比一下,於是從表結構,索引創建方式,逐一排查。

對應表的編碼 uft8mb4,uft8   發現表編碼不一樣  ???

最后把表編碼改成一致ok

 


免責聲明!

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



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