MYSQL 多表 LEFT JOIN 關聯查詢,索引失效導致全表掃描問題及解決方法


 

目前做商城系統二次重構,遇到原系統遺留訂單導出問題,因涉及多表查詢操作,原代碼設計者對mysql中加了N多的索引,但是查詢的時候a表根本沒有通過索引關聯b表,導致索引失效,檢索全表。先放出結論:關聯字段類型不一致,導致索引失效。

 

 

 

 

兩張表的數據量超過10萬條,僅僅查詢6000條數據,需要的時間接近4分鍾。這對使用者來說,體驗極差,更別說是1個月1個季度乃至半年的數據量導出。

 

 

 

 

 

 

 使用 查看表結構,SHOW FULL COLUMNS FROM XXX;顯示

 

 

 

 

 

 修改語句

ALTER TABLE XXX CHANGE out_trade_no out_trade_no VARCHAR(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

兩者統一之后查詢結果

 

 

 

寫在最后,如果能夠讓你的效率提升1000倍,何不給個贊再走呢。^ - ^ !

原文參考:https://blog.csdn.net/weixin_39533410/article/details/106859514

 


免責聲明!

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



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