MySQL8.0.32版本一個嚴重Bug及解決方案
前言
最近業務反饋,8.0.32在使用union和union all的過程中,發現含有中文等特殊字元時查詢返回資料為空。這個影響是比較嚴重的。
具體可參考芬達寫的文章《實戰——研究一個 MySQL8.0.32 最佳化器的嚴重 Bug》,文章的群友就是我本人,哈哈哈……
Bug 影響版本範圍
目前只發現8.0.32版本,其他版本目前沒有。但是一些分支版本也受到了影響,比如percona8.0.32,所以大家要結合自己的環境排查一下。
解決方案
1、關閉條件下推
2、升級版本
MySQL從8.0.16 版本開始,將原來mysql_upgrade的功能內建到MySQL Server的啟動過程中。所以從這個版本以後,更換需要升級的二進位制檔案,重啟服務即可完成升級。
個人更推薦第二中方式升級到8.0.33及以上8.0的小版本。
Bug 修復程式碼簡單解析 (僅供有興趣的讀者參考)
我們檢視官方bug修復的commit就發現,這個bug其實只改了一行程式碼。驚不驚喜,意不意外?哈哈哈……
翻了一下程式碼,這個位置主要是條件下推這個類的一個成員函式,用於解析結果。
修改後的程式碼加了字符集處理。
來自 “ DBA札記 ”, 原文作者:小董學程式設計;原文連結:https://mp.weixin.qq.com/s/2MFVWDul8f75J-QhZxhQZA,如有侵權,請聯絡管理員刪除。
相關文章
- 暫緩MongoDB 4.4.2 、4.4.3、 4.4.4版本升級: 存在嚴重BugMongoDB
- win10卡頓嚴重怎麼解決 win10卡頓嚴重的解決方法Win10
- 談談BUG嚴重級別(severity)管理
- 故障排除-丟包嚴重的抓包解決
- 記錄一個前端bug的解決過程前端
- CS0234 錯誤,奇葩bug,解決方案
- 軟體測試工程師必會:BUG分類及推進解決方案工程師
- 記一個低階又嚴重的錯誤
- APP執行緩慢5個原因及解決方案APP
- K8S 生態週報| Helm v3.8 OCI 支援正式 GA,Docker 新版本修復多個嚴重 bugK8SDocker
- 使用 requests 2.11 版本時的 Site ID 型別問題及解決方案型別
- Java限流及常用解決方案Java
- 少年黑客發現MacOS鑰匙串中的嚴重BUG黑客Mac
- 快取穿透詳解及解決方案快取穿透
- 一個Tomcat 如何部署多個專案?附多種解決方案及詳細步驟!Tomcat
- 重點人員管控解決方案
- mongodb 對記憶體的嚴重佔用以及解決方法MongoDB記憶體
- 滑鼠有嚴重的拖拽感很重延遲怎麼解決
- java.lang.OutOfMemoryError及解決方案JavaError
- 跨域問題及解決方案跨域
- 粘包拆包及解決方案
- Bash漏洞檢測及解決方案
- transitionEnd和animationEnd的一個臨時解決方案
- Laravel 中使用 PHP7.2+symfony 版本問題(嚴重)LaravelPHP
- 一個即將寫入MySQL原始碼的官方bug解決之路MySql原始碼
- 記一次JVM FullGC引發嚴重線上事故的定位、分析、解決過程!JVMGC
- 區塊鏈錢包開發解決方案六個重點介紹區塊鏈
- 記php-fpm重啟導致的一個bugPHP
- v-distpicker "重慶市 市轄區 江北區" bug解決
- mac 10.15版本使用 phpize 命令解決方案MacPHP
- 常見BUG解決
- 造成黏包的原因,及解決方案
- WordPress:常見問題及解決方案
- 梯度消失和梯度爆炸及解決方案梯度
- Volatile不保證原子性及解決方案
- Hadoop常見錯誤及解決方案Hadoop
- 智慧社群發展前景及解決方案
- ORACLE(Linux版本)實時同步資料到MYSQL(Linux版本)解決方案:OGGOracleLinuxMySql