SQL パフォーマンスの最適化の概要
このドキュメントでは、TiDB で SQL ステートメントのパフォーマンスを最適化する方法を紹介します。優れたパフォーマンスを得るには、次の側面から始めることができます。
- SQL パフォーマンスのチューニング
- スキーマ設計: アプリケーションのワークロード パターンに基づいて、トランザクションの競合やホット スポットを回避するためにテーブル スキーマを変更する必要がある場合があります。
SQL パフォーマンスのチューニング
優れた SQL ステートメントのパフォーマンスを得るには、次のガイドラインに従うことができます。
- できるだけ少ない行をスキャンします。必要なデータのみをスキャンし、余分なデータをスキャンしないことをお勧めします。
- 適切なインデックスを使用してください。 SQL の
WHERE
句の列に対応するインデックスがあることを確認してください。そうでない場合、ステートメントは全表スキャンを伴うため、パフォーマンスが低下します。 - 正しい結合タイプを使用してください。クエリに含まれるテーブルの相対的なサイズに基づいて、適切な結合の種類を選択することが重要です。一般に、TiDB のコストベースのオプティマイザーは、最もパフォーマンスの高い結合タイプを選択します。ただし、場合によっては、より適切な結合タイプを手動で指定する必要があります。
- 適切なstorageエンジンを使用します。 OLTP と OLAP のハイブリッド ワークロードには、 TiFlashエンジンをお勧めします。詳細については、 HTAP クエリを参照してください。
スキーマ設計
SQL パフォーマンスのチューニングの後、アプリケーションがまだ良好なパフォーマンスを得られない場合は、次の問題を回避するために、スキーマの設計とデータ アクセス パターンを確認する必要がある場合があります。
- トランザクション競合。トランザクションの競合を診断して解決する方法については、 ロック競合のトラブルシューティングを参照してください。
- ホットスポット。ホット スポットを診断して解決する方法については、 ホットスポットの問題のトラブルシューティングを参照してください。