<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          MySQL 8.0.18 count(*) 比較慢的bug

          共 1660字,需瀏覽 4分鐘

           ·

          2021-10-29 09:45

          點擊上方“服務端思維”,選擇“設為星標

          回復”669“獲取獨家整理的精選資料集

          回復”加群“加入全國服務端高端社群「后端圈」


          作者 | yangyidba
          出品?| yangyidba

          一個之前的同事描述了他遇到的性能案例,兩個數據庫分別是 mysql 5.7 和 mysql 8.0 執(zhí)行?select count(*) from table?,5.7 版本的性能明顯好于 8.0 版本的。而且數據量 5.7 版本的300w ,8.0 版本的115w 左右。配置是RDS 1core2g .

          分析

          其實我自己沒有怎么分析,查看了執(zhí)行計劃,是一致的。8.0.18 版本的確比較慢,于是谷歌之。。原因是官方針對 mysql 8.0.18 做一個改動: 如果buffer_pool 將近用完,并行掃描時涉及的到page幾乎不會再進入到緩存,導致select count(*) 這種全表掃描每次都要物理讀;同等情況下,MySQL 之前的版本 比如 8.0.16 或者 5.7的版本可以進入加載更多的 page 到緩存,因此性能差別也就非常大。

          官方的bug 地址 https://bugs.mysql.com/bug.php?id=99717&thanks=4

          下圖展示了 MySQL 8.0.18 版本執(zhí)行count 動作時實例耗費的IOPS 的確飚的非常高。



          如何解決

          查看MySQL 8.0 Release Notes ,發(fā)現 8.0.20 和 8.0.26 分別解決了不同平臺上的bug 。

          https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-26.html

          InnoDB: Stalls were caused by concurrent SELECT COUNT(*) queries where the number of parallel read threads exceeded the number of machine cores. A patch for this issue was provided for Windows builds in MySQL 8.0.24. The MySQL 8.0.26 patch addresses the same issue on other affected platforms. (Bug #32678019) References: See also: Bug #32224707.

          https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-20.html

          InnoDB: Changes to parallel read threads functionality introduced in MySQL 8.0.17 caused a degradation in SELECT COUNT(*) performance. Pages were read from disk unnecessarily. (Bug #30766089)


          使用云RDS的朋友記得檢查自己使用的數據庫是否是大于8.0.17 的 ,看看該bug是否對自己的業(yè)務有什么影響。


          — 本文結束 —


          ●?漫談設計模式在 Spring 框架中的良好實踐

          ●?顛覆微服務認知:深入思考微服務的七個主流觀點

          ●?人人都是 API 設計者

          ●?一文講透微服務下如何保證事務的一致性

          ●?要黑盒測試微服務內部服務間調用,我該如何實現?



          關注我,回復 「加群」 加入各種主題討論群。



          對「服務端思維」有期待,請在文末點個在看

          喜歡這篇文章,歡迎轉發(fā)、分享朋友圈


          在看點這里
          瀏覽 70
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  乱伦天堂H | 五月天色色网址 | 天天摸天天摸天天 | 亚洲第一区视频 | 秋霞网一曲二曲 |