InnoDB History List Length(HLL)の増加<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } History List Length とは何ですか? History List Length は、InnoDB が依然としてパージする必要がある undo レコードの数をカウントします。History List は、ロールバックの目的で redo log に保持される変更履歴です。InnoDB は、トランザクション (MVCC) をサポートするために行の複数のバージョンを保持します。トランザクションがコミットされた後、古いバージョンはバックグラウンドの purge スレッドによって削除されます。purge の処理が追いつかない場合、HLL は増加します。 メトリック名: 「History list length」保存場所: InnoDB の undo/rollback セグメント内重要である理由: バックログが大きいと、I/O およびメモリのオーバーヘッドが増加し、一貫性読み取り (consistent read) が遅くなり、undo テーブルスペースが肥大化し、場合によってはレプリケーション遅延も発生します お客様が問題として認識する症状 全体的なパフォーマンス低下。特に、一貫したスナップショットを必要とする読み取り処理 (例: 長時間実行される SELECT)undo テーブルスペースのサイズ増加 (例: undo_001、undo_002、または旧バージョンにおける共有システムテーブルスペースの増加)レプリケーションの遅延 (Seconds_Behind_Master、Replica_IO、SQL lag の増加)メタデータロックの長時間化、または DDL の実行時間が想定より長くなる「History list length」または「Purge lag」に関する監視アラート 通常、sys_trigger に対するクエリは常時実行されており、非常に高い HLL が発生すると、sys_trigger テーブルおよび sys_trigger に対するクエリへの影響を確認できます。sys_trigger が断片化により肥大化するため、ジョブにも影響が及ぶ可能性があります。 HLL が高くなる理由 (一般的な原因) 長時間実行されるデータベーストランザクション (読み取り専用の SELECT を開いたままにしている場合、autocommit=0 セッションでアイドル状態のトランザクション、未コミットの書き込み、DDL、nocopy を使用した Alter など)purge の処理能力を上回る大量の書き込みバーストテーブルの再構築またはコピーを実行し、大量の undo と長時間のメタデータロックを生成する問題のある DDLpurge スレッド数不足、またはストレージ性能の低下により purge の進行が制限されている状態 HLL が高い場合の対処方法 サポートは、依然として実行中の長時間実行クエリをデータベース上で停止します。高い HLL によって sys_trigger が肥大化 (断片化) している場合、サポートは sys_trigger を再構築します。History list length が低いこと、または低下傾向にあることを確認します。HLL を継続的に監視し、sys_trigger の断片化を定期的に確認します。HLL が低下した後、sys_trigger テーブルの断片化を再度確認してください。断片化している場合は、再度再構築が必要になる可能性があります。