現象の説明
スロークエリ現象が発生すると、通常、CPU使用率やスロークエリーの数など、複数の監視指標が同時に跳ね上がります。
考えられる原因
通常、SQLステートメントの実行効率はあまり高くないため、TencentDB for MySQLに大量のリクエストが蓄積されます。よくある原因は、以下の2つです。
- 原因1:SQLステートメントがインデックスを使用していないか、またはより良いインデックスを使用していない。
- 原因2:QPSのプレッシャーが、現在のインスタンスの負荷上限を超えている。
ソリューション
考えられる2つの原因に対しては、さまざまな解決方法があります。
- ソリューション1:SQLステートメントを最適化して、SQLステートメントの実行効率を引き上げます。詳しくは対策1をご参照ください。
- ソリューション2:TencentDB for MySQLの設定を引き上げます。詳しくは対策2をご参照ください。
処理手順
TencentDB for DBbrainを直接使用して、スロークエリを最適化することができます。DBbrainはSQLステートメントを分析し、インデックスを追加するための提案を行います。
- DBbrainコンソールにログインし、左側のナビゲーションでPerformance Optimizationを選択し、上部にあるデータベースを選択し、Slow SQL Analysisタブを選択します。
- 「SQL統計」チャートのスロークエリー(棒グラフ)をクリック(単一の時間帯を選択)またはプル(複数の時間帯を選択)します。下に集約されたSQLテンプレートと実行情報(実行数、合計実行時間、スキャンされた行数、返された行数などを含む)が以下に表示されます。
- 集約されたSQLテンプレート行をクリックすると、SQLの具体的な分析および統計データが右側にポップアップ表示され、対応するインデックスの提案を確認することができます。
各仕様に対応するQPS公式負荷テストデータを確認し、現在のインスタンスのQPSデータと比較して、対応するMySQL CPUとメモリ仕様を調整します。
この記事はお役に立ちましたか?