一、背景
近期對系統進行慢SQL優化,通過訂閱Mysql慢SQL日誌蒐集到了一批慢SQL。其中有一條SQL很奇怪,表中已有索引,並且表數據量並不很大,查詢效率很低。
二、原因分析
根本原因:sql參數入參爲long類型,數據庫表爲varchar類型,類型不一致導致索引失效。
三、解決辦法
- 將代碼中的方法入參類型改爲long。
- 由於系統是讀寫分離的,在此方法上指定使用讀庫。
四、解決過程
- 準備
線上系統數據庫不方便展示,於是整了一個測試表來複現此問題,環境如下,
==============未完====