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