MySQL 8.0でSELECT COUNT(*)の性能劣化
2022
2024
8.0.37で解消されたとのこと
2024/06/14時点ではAuroraの対応がまだ -> 対応された 原因は
並列読み取りスレッドのページを事前に読み込む機能が、クラスタ化インデックスにおいて必要以上にページを読み込んでしまい、過剰な読み取りI/Oを引き起こしてSELECT COUNTのパフォーマンスが悪化している
回避方法
SELECT COUNTでクラスタ化インデックス(PKインデックス)の並列スキャンを利用させないようにする
ヒント句(USE INDEXやFORCE INDEX)でセカンダリインデックスを指定必須
WHERE句での条件必須