mysql 字段類型不一致導致索引失效


近日,線上發現一條查詢效率很低的sql(還好只是試運行,不然要涼涼了)

sql也比較簡單,就是查詢部門,順便關聯了部門的所屬行政區划,紅色的子查詢是這次的查詢較慢的原因

使用EXPLAIN 分析sql可以看到,對於md_administrative_region表是進行了全表的掃描(type=all)

剛開始以為是sql的問題(可能也是有問題的 0.0 ),但之后嘗試流很多次始終無法使用索引,直到無意間百度到 Mysql中字段類型不一致導致索引無效

看了一下表結構才發現確實一個是varchar一個是bigint, 修改其中的一個后再使用EXPLAIN 分析可以發現

md_administrative_region從type=all變成了type=eq_ref,進行了索引查詢,查詢的sql效率從7秒變成了0.07秒,真的快了太多

所以特地在此記錄一下,希望之后可以留心!

ps:如上訴描述有所錯誤,請指出,我會立刻改正的。

 


免責聲明!

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



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