検索インデックスは、条件付きフィルタリング、集計、ソートなどの機能をサポートしています。検索インデックスを作成すると、システムは検索インデックスの計算能力を最大限に活用し、一部のSQL計算タスクを検索インデックスにプッシュダウンして実行できます。これにより、フルテーブルスキャンが不要になり、計算効率が向上します。
検索インデックスの詳細については、概要を参照してください。
シナリオ
検索インデックスにSQLステートメントに含まれるデータ列が含まれている場合、SQLエンジンは検索インデックスを使用してデータを読み取り、検索インデックスでサポートされている演算子をプッシュダウンします。たとえば、exampletableという名前のテーブルには、a、b、c、dの列が含まれています。テーブルの検索インデックスには、インデックスが付けられたa、b、cの列が含まれています。SQLエンジンは、a、b、cの列がSQLステートメントに含まれている場合にのみ、検索インデックスを使用してデータを読み取ります。
SELECT a, b, c, d FROM exampletable; /* 検索インデックスにはa、b、c、またはdの列が含まれていません。SQLエンジンはテーブル全体をスキャンしてデータを読み取り、演算子をプッシュダウンしません。 */
SELECT a, b, c FROM exampletable; /* 検索インデックスにはa、b、cの列が含まれています。SQLエンジンは検索インデックスを使用してデータを読み取り、演算子をプッシュダウンします。 */
前提条件
検索インデックスが作成されていること。詳細については、検索インデックスの作成を参照してください。
マッピングテーブルが作成されていること。詳細については、テーブルのマッピングテーブルの作成または検索インデックスのマッピングテーブルの作成を参照してください。
プッシュダウンできる演算子
次の表は、SQLステートメントで実行するために検索インデックスにプッシュダウンできる演算子について説明しています。
タイプ | 演算子 | プッシュダウンの制限 |
論理演算子 | ANDおよびOR | NOT演算子はプッシュダウンできません。 |
関係演算子 | =、!=、<、<=、>、>=、およびBETWEEN ... AND ... | 演算子のプッシュダウンは、データ列と定数の比較に対してのみサポートされています。データ列間の比較では、演算子のプッシュダウンはサポートされていません。
|
集計関数 |
| 集計関数は、すべてのデータまたはGROUP BYグループのデータを集計できます。演算子のプッシュダウンは、集計関数がプッシュダウンをサポートし、関数パラメーターがデータ列である場合にのみサポートされます。
|
LIMIT |
| 演算子のプッシュダウンは、ORDER BY句のパラメーターがデータ列である場合にのみサポートされます。
|