有三張表需要關聯查詢,關聯關系如下
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
