ApsaraDB for SelectDB は、Nereids オプティマイザーと Pipeline 実行エンジンを使用して、クエリを自動的に最適化します。高パフォーマンス クエリの要件を満たすために、クエリを手動で最適化できます。たとえば、インデックスベースの高速化、高並列ポイントクエリ、マテリアライズドビュー、および結合の最適化を使用できます。
自動クエリ最適化計画
SelectDB では、Nereids オプティマイザーと Pipeline 実行エンジンは、クエリ最適化フェーズと実行フェーズでディープ最適化に使用できるコア クエリ処理テクノロジーです。これらのテクノロジーは、複雑なクエリのパフォーマンスとリソース使用量を大幅に改善します。次の図は、SelectDB でこれらのテクノロジーが SQL 文をどのように最適化するかを示しています。
次の表は、各テクノロジーの主な機能について説明しています。詳細については、関連ドキュメントをご参照ください。
テクノロジー | 機能の説明 |
| |
|
手動クエリ最適化
SelectDB の Nereids オプティマイザーと Pipeline 実行エンジンがクエリの要件を満たしていない場合は、統計 を使用してクエリデータを分析し、適切なポリシーを選択してクエリを最適化できます。
最適化ポリシー | シナリオ | 制限 |
高並列ポイントクエリを最適化する場合。 説明 ポイントクエリとは、特定の条件を満たす少量のデータをデータベースから取得することです。ほとんどの場合、プライマリキーまたはカーディナリティの高い列を使用して取得を実行します。 |
| |
反復的で時間のかかる複雑なクエリを最適化する場合。 |
詳細については、「制限」をご参照ください。 | |
あらゆるシナリオでデータをすばやくクエリまたは配置する場合。 | 制限は、インデックスの種類によって異なります。詳細については、「インデックスベースの高速化」をご参照ください。 | |
結合クエリを最適化する場合。 | 結合条件には左テーブルの分散列が含まれている必要があり、左テーブルは実行中に単一パーティションのデータのみを使用します。 | |
結合クエリを最適化する場合。 | 結合条件には左テーブルの分散列が含まれている必要があり、左右のテーブルは同じコロケート グループに属している必要があります。 | |
大きなテーブルと小さなテーブルを結合するプロセスを最適化する必要があるシナリオ。 | ランタイム フィルターを使用する場合、JOIN 文は次の要件を満たしている必要があります。
| |
|
| |
|
|