做者:王順
愛可生 DBA 團隊成員,在公司負責項目中處理數據庫問題,喜歡學習技術,鑽研技術問題。
本文來源:原創投稿
*愛可生開源社區出品,原創內容未經受權不得隨意使用,轉載請聯繫小編並註明來源。
客戶生產環境數據庫遷移,數據庫從 MariaDB 10.4 遷移到 MySQL 5.7,一條業務 SQL 運行很慢。從客戶瞭解到業務以前在 MariaDB 運行正常,近期業務沒有變動過,遷移到 MySQL 5.7 運行很慢,已經影響業務正常使用。數據庫
(因生產環境涉及敏感信息,如下信息爲測試環境信息)學習
從 MySQL 5.7 執行計劃的 warnings 中,能夠清晰的看到 id 字段的字段類型或排序規則轉換,沒法使用索引。測試
能夠看到排序規則改變後,執行計劃正常。spa
使用 convert 對 sbtest1 表 id 字段進行轉換,執行計劃正常。3d
MySQL 5.7 檢測到表 sbtest1 的 id 字段和表 sbtest2 的 id 字段的 collation 不一樣,沒有正常走索引,形成查詢很慢。經過改變排序規則或使用 convert 轉換能夠解決。因爲 MariaDB 和 MySQL 的 collation 轉換規則對執行計劃的影響不一樣,在 MariaDB 中,不一樣的 Collation 並無影響到查詢效率。blog