PolarDB for MySQL のインメモリ列インデックス (IMCI) 機能は、分析処理 (AP) クエリを大幅に高速化するように設計されています。IMCI が SQL クエリを正しく高速化し、期待される結果を返すようにするため、この機能を使用する前に、その適用範囲と制限事項を確認してください。
一般的な制限事項
インメモリ列インデックスを使用する前に、ご利用のクラスター環境とテーブルスキーマが次の要件を満たしていることを確認してください。
ストレージエンジン:列ストアインデックスは、
InnoDBストレージエンジンを使用するテーブルでのみサポートされます。一時テーブル:IMCI を使用して一時テーブルに対するクエリを高速化することはできません。
仮想カラム:次の条件を満たす場合、仮想カラムにインメモリ列インデックスを作成できます。
imci_enable_virtual_columnクラスターパラメーターをONに設定します。説明これは SESSION レベルのパラメーターであり、コンソールでは変更できません。
インメモリ列インデックスの作成時に
order_keyが指定されていません。
仮想カラムの型:空間 (Spatial) 型の仮想カラムに対してインメモリ列インデックスを作成することはできません。
マルチマスタークラスター (無制限) エディションの場合、まずクラスターパラメーターを変更して
loose_polar_enable_imci_with_mmをONに設定する必要があります。その後、インメモリ列インデックス用のグローバル読み取り専用ノードを追加し、IMCI 機能を使用できます。
SELECT 文の制限事項
列ストアインデックスは SELECT クエリのみを高速化します。クエリ文に次のいずれかの構造が含まれている場合、クエリは列ストアインデックスによって高速化されず、ローストア実行にフォールバックします。
SELECT ... FOR UPDATEやSELECT ... FOR SHAREのようなロック読み取りを含むSELECT文。フレーム定義を持つウィンドウ関数を含む
SELECT文。たとえば、OVER()句でROWS UNBOUNDED PRECEDINGを使用する場合です。SELECT time, subject, val, SUM(val) OVER ( PARTITION BY subject ORDER BY time ROWS UNBOUNDED PRECEDING --- ウィンドウ関数内のフレーム定義、IMCI では非サポート ) AS running_total FROM observations;サブクエリが
GROUP BY句に現れるSELECT文。例:SELECT SUM(a) FROM t1 GROUP BY (SELECT ... FROM ...) as some_subquery;サブクエリが
ORDER BY式に現れるSELECT文。例:SELECT a FROM t1 ORDER BY (SELECT ... FROM ...) as some_subquery;相関サブクエリが
JOINのON条件に現れるSELECT文。例:WHERE t1.a in (SELECT t2.a FROM t2 INNER JOIN t3 on t2.a = t3.a AND t2.b > t1.b);サブクエリにウィンドウ関数が含まれ、その相関項目が
HAVING条件に現れるSELECT文。サブクエリに
UNIONが含まれ、その相関項目がUNIONのサブクエリのいずれかに現れるSELECT文。
式と関数の制限事項
SELECT 文にサポートされていない式や関数が含まれている場合、クエリ全体がローストア実行にフォールバックします。
比較式
式 | 列ストアインデックスはサポートされていますか? | 注意事項 |
|
| |
|
| |
| 入力パラメーターに | |
|
| |
| 入力パラメーターに | |
| - |
文字列式
式 | 列ストアインデックスはサポートされていますか? | 注意事項 |
| - | |
| BOOLEAN MODE と NATURAL LANGUAGE MODE がサポートされています。 | |
| - | |
| IMCI を使用する場合、この関数は 1 つのパラメーターのみをサポートします。2 つのパラメーターはサポートしていません。 |
暗号化および圧縮式
式 | 列ストアインデックスのサポート |
| |
| |
| |
| |
| |
| |
| |
| |
|
JSON 関数
関数 | 列ストアインデックスのサポート |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
空間関数
関数 | 列ストアインデックスはサポートされていますか? |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|