インメモリ列インデックス (IMCI) の拡張属性を使用して、IMCIをカスタマイズできます。 このトピックでは、IMCIの拡張属性について説明します。 このトピックでは、これらの拡張属性を使用してIMCIをカスタマイズする方法についても説明します。
拡張属性
pack_shift
この属性は、IMCIデータの行グループサイズを設定するために使用されます。 IMCIの行グループサイズは、主にメモリに存在するデータ量に影響します。 多数のテーブルまたはパーティションテーブルが使用されている場合は、この属性を調整できます。 この属性の値は整数でなければなりません。 この属性の有効な値の範囲は6から18です。 デフォルトでは、この属性を指定しない場合、loose_imci_default_pack_shiftパラメーターの値が使用されます。
loose_imci_default_pack_shiftパラメーターの詳細については、「IMCI関連パラメーター」をご参照ください。 PolarDBコンソールでloose_imci_default_pack_shiftパラメーターを表示および設定できます。 詳細については、「クラスターパラメーターとノードパラメーターの指定」をご参照ください。
codec_opt
この属性は、IMCIの圧縮アルゴリズムを設定するために使用されます。 詳細については、「圧縮アルゴリズムの設定」をご参照ください。
order_key
この属性は、IMCIのソートキーを設定するために使用されます。 詳細については、「IMCIのソートキーの設定」をご参照ください。
pruner/pruner_minmax/pruner_bloom
この属性は、データスキャンを高速化するために文字列列にセカンダリインデックスを作成するかどうかを指定するために使用します。 詳細については、「統計クエリのIMCI最適化」をご参照ください。
デフォルトでは、クラスターバージョンがPolarDB for MySQL 8.0.1.1.35以降の場合、文字列列にminmaxインデックスとブルームフィルターが作成されます。
プレフィックス_len
この属性は、string型のminmaxプルーナーのプレフィックス長を設定するために使用されます。 プレフィックス長はバイト単位で測定されます。 この属性の有効な値の範囲は1から255です。 この属性のデフォルト値は20です。 詳細については、「IMCI optimization For statistic queries」トピックの「テーブルを作成するときにminmaxインデックスを作成する」をご参照ください。
write_policy
この属性は、IMCIデータの書き込みポリシーを設定するために使用されます。 この属性は主に、IMCIデータが占めるスペースの量と書き込み操作のパフォーマンスに影響します。 write_policy属性の有効値:
0: ForCapacity. このポリシーは、ストレージスペースを優先し、IMCIデータを分割して複数のファイルに書き込み、断片化の割合を最小限に抑えることを示します。 このポリシーを使用すると、各書き込み操作で最大4 KBのフラグメントが1つ生成されます。
1: ForPerformance. このポリシーは、IMCIデータがExtentSizeという名前のファイルに書き込まれるたびに、I/Oパフォーマンスが優先されることを示します。 このポリシーは最高のI/Oパフォーマンスを保証しますが、断片化率が最大になり、スペースの無駄が大きくなります。
2: Skip4K. このポリシーは、16 KBのデータがページフリースペース (PFS) の機能に基づくパフォーマンス要件を満たし、ForCapacityポリシーと同様のロジックを使用してデータを分割することを示します。 書き込まれたデータのサイズが4 KBを超える場合、4 KBのエクステントは無視されます。 16 KBの最大1つのフラグメントが、各書き込み動作で生成される。
3: Tradeoff. このポリシーは、Skip4Kポリシーよりも優先度が高くなります。 書き込まれたデータのサイズが1 MB (IMCIのI/Oサイズの単位) 未満の場合、このポリシーはForPerformanceポリシーと同様に機能します。 書き込まれるデータのサイズが1 MB以上の場合、データは異なるファイルに分割される。
デフォルトでは、write_policy属性を設定しない場合、loose_imci_default_write_policyパラメーターの値が使用されます。 loose_imci_default_write_policyパラメーターの有効な値は、write_policy属性と同じです。 PolarDBコンソールでloose_imci_default_write_policyパラメーターを表示および設定できます。 詳細については、「クラスターパラメーターとノードパラメーターの指定」をご参照ください。
属性の使用法
テーブルを作成するときに拡張属性を指定します。
CREATE TABLE lineitem (l_orderkey INTEGER NOT NULL、 l_partkey INTEGER NOT NULL、 l_suppkey INTEGER NOT NULL、 l_linenumber INTEGER NOT NULL、 l_quantity DECIMAL(15,2) NOT NULL、 l_extendedprice DECIMAL(15,2) NOT NULL、 l_discount DECIMAL(15,2) NOT NULL、 l_tax DECIMAL(15,2) NOT NULL、 l_returnflag CHAR(1) NOT NULL、 l_linestatus CHAR (1) NOT NULL, l_shipdate日付NOT NULL、 l_commitdate日付NOT NULL、 l_receiptdate日付NOT NULL, l_shipindew CHAR(25) NOT NULL、 l_shipmode CHAR(10) NOT NULL、 l_comment VARCHAR (44) NOT NULL ) コメント "COLUMNAR=1 <optName >=< optValue>";次のDDLステートメントを実行して、拡張属性を指定します。
CREATE TABLE lineitem COMMENT "COLUMNAR=1 <optName >=< optValue>";
次の表に、上記のステートメントに含まれるパラメーターを示します。
パラメーター | 説明 |
optName | 拡張属性の名前。 例: pack_shift。 |
optValue | 拡張属性の値。The value of the extended attribute. |