近日,線上發現一條查詢效率很低的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:如上訴描述有所錯誤,請指出,我會立刻改正的。
