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