diff --git a/choose-index.md b/choose-index.md index f14598f8d66cd..05f1863fd0ed4 100644 --- a/choose-index.md +++ b/choose-index.md @@ -22,7 +22,7 @@ summary: TiDBクエリ最適化に最適なインデックスを選択してく | TableReader | テーブルはTiFlashノード上に複製されます。 | 読み込む列の数は少ないが、評価する行の数は多い。 | この TableReader 演算子はTiFlash用です。TiFlashは列ベースのストレージです。列数が少なく行数が多い場合、この演算子を選択することをお勧めします。 | | IndexReader | テーブルには1つ以上のインデックスがあり、計算に必要な列はインデックスに含まれています。 | インデックスに対してより狭い範囲のクエリを実行する場合、またはインデックス付き列に順序要件がある場合。 | 複数の指標が存在する場合は、コスト見積もりに基づいて適切な指標が選択されます。 | | IndexLookupReader | テーブルには1つ以上のインデックスがあり、計算に必要な列がインデックスに完全に含まれていない。 | IndexReaderと同じです。 | インデックスは計算列を完全にカバーしていないため、TiDBはインデックスを読み取った後にテーブルから行を取得する必要があります。これはIndexReaderオペレーターと比較して追加のコストがかかります。 | -| IndexMerge | テーブルには複数のインデックス、または複数値インデックスが存在する。 | 複数値インデックスまたは複数のインデックスが使用される場合。 | 演算子を使用するには、[オプティマイザのヒント](/optimizer-hints.md)を指定するか、コスト見積もりに基づいてオプティマイザにこの演算子を自動的に選択させることができます。詳細については、[インデックスマージを使用した説明文](/explain-index-merge.md)を参照してください。 | +| IndexMerge | テーブルには複数のインデックス、または多値インデックスが存在する。 | 多値インデックスまたは複数のインデックスが使用される場合。 | 演算子を使用するには、[オプティマイザのヒント](/optimizer-hints.md)を指定するか、コスト見積もりに基づいてオプティマイザにこの演算子を自動的に選択させることができます。詳細については、[インデックスマージを使用した説明文](/explain-index-merge.md)を参照してください。 | > **注記:** > @@ -143,15 +143,15 @@ mysql> SHOW WARNINGS; - `READ_FROM_STORAGE`オプティマイザに特定のテーブルに対してクエリを実行するために TiKV / TiFlashストレージエンジンを選択するように強制できます。 -## 複数値インデックスを使用する {#use-multi-valued-indexes} +## 多値インデックスを使用する {#use-multi-valued-indexes} -[多値インデックス](/sql-statements/sql-statement-create-index.md#multi-valued-indexes)は通常のインデックスとは異なります。 TiDB は現在、複数値のインデックスにアクセスするために[インデックスマージ](/explain-index-merge.md)のみを使用します。したがって、データ アクセスに複数値インデックスを使用するには、システム変数[`tidb_enable_index_merge`](/system-variables.md#tidb_enable_index_merge-new-in-v40)の値が`ON`に設定されていることを確認してください。 +[多値インデックス](/sql-statements/sql-statement-create-index.md#multi-valued-indexes)は通常のインデックスとは異なります。 TiDB は現在、多値インデックスにアクセスするために[インデックスマージ](/explain-index-merge.md)のみを使用します。したがって、データ アクセスに多値インデックスを使用するには、システム変数[`tidb_enable_index_merge`](/system-variables.md#tidb_enable_index_merge-new-in-v40)の値が`ON`に設定されていることを確認してください。 -複数値インデックスの制限事項については、 [`CREATE INDEX`](/sql-statements/sql-statement-create-index.md#limitations)を参照してください。 +多値インデックスの制限事項については、 [`CREATE INDEX`](/sql-statements/sql-statement-create-index.md#limitations)を参照してください。 ### サポートされているシナリオ {#supported-scenarios} -現在、TiDB は`json_member_of` 、 `json_contains` E}} 、 `json_overlaps`の条件から自動的に変換される IndexMerge を使用して、複数値インデックスへのアクセスをサポートしています。オプティマイザがコストに基づいて IndexMerge を自動的に選択するようにするか、オプティマイザヒント[`use_index_merge`](/optimizer-hints.md#use_index_merget1_name-idx1_name--idx2_name-)または[`use_index`](/optimizer-hints.md#use_indext1_name-idx1_name--idx2_name-)を使用して複数値インデックスの選択を指定できます。以下の例を参照してください。 +現在、TiDB は`json_member_of`、`json_contains`、`json_overlaps`の条件から自動的に変換される IndexMerge を使用して、多値インデックスへのアクセスをサポートしています。オプティマイザがコストに基づいて IndexMerge を自動的に選択するようにするか、オプティマイザヒント[`use_index_merge`](/optimizer-hints.md#use_index_merget1_name-idx1_name--idx2_name-)または[`use_index`](/optimizer-hints.md#use_indext1_name-idx1_name--idx2_name-)を使用して多値インデックスの選択を指定できます。以下の例を参照してください。 ```sql mysql> CREATE TABLE t1 (j JSON, INDEX idx((CAST(j->'$.path' AS SIGNED ARRAY)))); -- Uses '$.path' as the path to create a multi-valued index @@ -248,7 +248,7 @@ EXPLAIN SELECT /*+ use_index_merge(t2, idx, idx2) */ * FROM t2 WHERE (a=1 AND 1 +-------------------------------+---------+-----------+-----------------------------------------------------------------------------------+-----------------------------------------------------+ ``` -TiDBはIndexMergeを使用して、複数値インデックスと通常のインデックスの両方にアクセスすることもできます。例: +TiDBはIndexMergeを使用して、多値インデックスと通常のインデックスの両方にアクセスすることもできます。例: ```sql CREATE TABLE t3(j1 JSON, j2 JSON, a INT, INDEX k1((CAST(j1->'$.path' AS SIGNED ARRAY))), INDEX k2((CAST(j2->'$.path' AS SIGNED ARRAY))), INDEX ka(a)); @@ -279,7 +279,7 @@ EXPLAIN SELECT /*+ use_index_merge(t3, k1, k2, ka) */ * FROM t3 WHERE 1 member o +-------------------------------+---------+-----------+-----------------------------------------------------------------------------+---------------------------------------------+ ``` -`json_member_of` 、 `json_contains`または`json_overlaps`の複数の条件が`OR`または`AND`と関連付けられている場合、IndexMergeを使用して複数値インデックスにアクセスするには、以下の要件を満たす必要があります。 +`json_member_of` 、 `json_contains`または`json_overlaps`の複数の条件が`OR`または`AND`と関連付けられている場合、IndexMergeを使用して多値インデックスにアクセスするには、以下の要件を満たす必要があります。 ```sql CREATE TABLE t4(a INT, j JSON, INDEX mvi1((CAST(j->'$.a' AS UNSIGNED ARRAY))), INDEX mvi2((CAST(j->'$.b' AS UNSIGNED ARRAY)))); @@ -325,7 +325,7 @@ CREATE TABLE t4(a INT, j JSON, INDEX mvi1((CAST(j->'$.a' AS UNSIGNED ARRAY))), I +---------+------+----------------------------+ ``` -- `AND`に関連する条件については、それぞれ IndexMerge を使用してアクセスできる必要があります。TiDB は、これらの条件を持つマルチ値インデックスへのアクセスに IndexMerge のみを使用できます。例: +- `AND`に関連する条件については、それぞれ IndexMerge を使用してアクセスできる必要があります。TiDB は、これらの条件を持つ多値インデックスへのアクセスに IndexMerge のみを使用できます。例: ```sql EXPLAIN SELECT /*+ use_index_merge(t4, mvi1) */ * FROM t4 WHERE json_contains(j->'$.a', '[1, 2]') AND json_contains(j->'$.a', '[3, 4]'); @@ -599,7 +599,7 @@ EXPLAIN SELECT /*+ use_index_merge(t6, idx, idx2) */ * FROM t6 WHERE a=1 AND ((1 +-------------------------------+---------+-----------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ``` -現在のマルチバリューインデックスの実装上の制約により、 [`use_index`](/optimizer-hints.md#use_indext1_name-idx1_name--idx2_name-)を使用すると`Can't find a proper physical plan for this query`エラーが発生する可能性がありますが、 [`use_index_merge`](/optimizer-hints.md#use_index_merget1_name-idx1_name--idx2_name-)使用するとそのようなエラーは発生しません。したがって、マルチバリューインデックスを使用する場合は`use_index_merge`を使用することをお勧めします。 +現在の多値インデックスの実装上の制約により、 [`use_index`](/optimizer-hints.md#use_indext1_name-idx1_name--idx2_name-)を使用すると`Can't find a proper physical plan for this query`エラーが発生する可能性がありますが、 [`use_index_merge`](/optimizer-hints.md#use_index_merget1_name-idx1_name--idx2_name-)を使用するとそのようなエラーは発生しません。したがって、多値インデックスを使用する場合は`use_index_merge`を使用することをお勧めします。 ```sql mysql> EXPLAIN SELECT /*+ use_index(t3, idx) */ * FROM t3 WHERE ((1 member of (j)) AND (2 member of (j))) OR ((3 member of (j)) AND (4 member of (j))); @@ -616,9 +616,9 @@ mysql> EXPLAIN SELECT /*+ use_index_merge(t3, idx) */ * FROM t3 WHERE ((1 member 3 rows in set, 2 warnings (0.00 sec) ``` -### 複数値インデックスとプランキャッシュ {#multi-valued-indexes-and-plan-cache} +### 多値インデックスとプランキャッシュ {#multi-valued-indexes-and-plan-cache} -`member of`を使用して複数値インデックスを選択するクエリプランはキャッシュできます。 `JSON_CONTAINS()`または`JSON_OVERLAPS()`関数を使用して複数値インデックスを選択するクエリプランはキャッシュできません。 +`member of`を使用して多値インデックスを選択するクエリプランはキャッシュできます。 `JSON_CONTAINS()`または`JSON_OVERLAPS()`関数を使用して多値インデックスを選択するクエリプランはキャッシュできません。 クエリプランをキャッシュできる例をいくつか以下に示します。 diff --git a/functions-and-operators/cast-functions-and-operators.md b/functions-and-operators/cast-functions-and-operators.md index f68002ba4ea28..82d5db3398594 100644 --- a/functions-and-operators/cast-functions-and-operators.md +++ b/functions-and-operators/cast-functions-and-operators.md @@ -63,7 +63,7 @@ SELECT CAST(0x54694442 AS CHAR); 1 row in set (0.0002 sec) ``` -次の文は、JSON列から抽出された`a`の属性の値を符号なし配列にキャストします。配列へのキャストは、複数値インデックスのインデックス定義の一部としてのみサポートされることに注意してください。 +次の文は、JSON列から抽出された`a`の属性の値を符号なし配列にキャストします。配列へのキャストは、多値インデックスのインデックス定義の一部としてのみサポートされることに注意してください。 ```sql CREATE TABLE t ( diff --git a/releases/release-6.6.0.md b/releases/release-6.6.0.md index e2175ee57de88..54c656d624a06 100644 --- a/releases/release-6.6.0.md +++ b/releases/release-6.6.0.md @@ -17,7 +17,7 @@ TiDB バージョン: 6.6.0- [DMR](/releases/versioning.md#development-milestone バージョン6.6.0-DMRの主な新機能と改善点は以下のとおりです。 -
カテゴリ特徴説明
拡張性とパフォーマンス
TiKVはパーティション化されたRaft KVストレージエンジンをサポートしています(実験的)。 TiKVはパーティション化されたRaft KVストレージエンジンを導入しており、各リージョンは独立したRocksDBインスタンスを使用するため、クラスターのストレージ容量をテラバイトからペタバイトまで容易に拡張でき、より安定した書き込みレイテンシーと強力なスケーラビリティを実現します。
TiKVはデータ要求のバッチ集計をサポートしていますこの機能強化により、TiKVのバッチ取得操作におけるRPCの総数が大幅に削減されます。データが高度に分散しており、gRPCスレッドプールのリソースが不足している状況では、コプロセッサ要求をバッチ処理することで、パフォーマンスを50%以上向上させることができます。
TiFlashは、 ステイル読み取り圧縮交換をサポートしています。 TiFlashは、リアルタイム要件に制約がないシナリオにおいてクエリ性能を向上させることができる、古いデータの読み取り機能をサポートしています。また、 TiFlashはデータ圧縮をサポートしており、並列データ交換の効率を向上させ、TPC-H全体のパフォーマンスを10%向上させ、ネットワーク使用量を50%以上削減できます。
信頼性と可用性
リソース制御(実験的)リソースグループに基づいたリソース管理をサポートします。これにより、データベースユーザーを対応するリソースグループにマッピングし、実際のニーズに基づいて各リソースグループの割り当て量を設定します。
履歴SQLバインディングTiDB Dashboard上で、過去の実行計画のバインドと、実行計画の迅速なバインドをサポートします。
SQLの機能
外部キー(実験的)データの一貫性を維持し、データ品質を向上させるために、MySQL互換の外部キー制約をサポートします。
多値指標(実験的) MySQL互換の複数値インデックスを導入し、JSON型を拡張することで、TiDBのMySQL 8.0との互換性を向上させます。
DB操作と可観測性
DMは物理的なインポートをサポートします(実験的) TiDBデータ移行(DM)は、TiDB Lightningの物理インポートモードを統合することで、フルデータ移行のパフォーマンスを向上させ、最大10倍高速化します。
+
カテゴリ特徴説明
拡張性とパフォーマンス
TiKVはパーティション化されたRaft KVストレージエンジンをサポートしています(実験的)。 TiKVはパーティション化されたRaft KVストレージエンジンを導入しており、各リージョンは独立したRocksDBインスタンスを使用するため、クラスターのストレージ容量をテラバイトからペタバイトまで容易に拡張でき、より安定した書き込みレイテンシーと強力なスケーラビリティを実現します。
TiKVはデータ要求のバッチ集計をサポートしていますこの機能強化により、TiKVのバッチ取得操作におけるRPCの総数が大幅に削減されます。データが高度に分散しており、gRPCスレッドプールのリソースが不足している状況では、コプロセッサ要求をバッチ処理することで、パフォーマンスを50%以上向上させることができます。
TiFlashは、 ステイル読み取り圧縮交換をサポートしています。 TiFlashは、リアルタイム要件に制約がないシナリオにおいてクエリ性能を向上させることができる、古いデータの読み取り機能をサポートしています。また、 TiFlashはデータ圧縮をサポートしており、並列データ交換の効率を向上させ、TPC-H全体のパフォーマンスを10%向上させ、ネットワーク使用量を50%以上削減できます。
信頼性と可用性
リソース制御(実験的)リソースグループに基づいたリソース管理をサポートします。これにより、データベースユーザーを対応するリソースグループにマッピングし、実際のニーズに基づいて各リソースグループの割り当て量を設定します。
履歴SQLバインディングTiDB Dashboard上で、過去の実行計画のバインドと、実行計画の迅速なバインドをサポートします。
SQLの機能
外部キー(実験的)データの一貫性を維持し、データ品質を向上させるために、MySQL互換の外部キー制約をサポートします。
多値インデックス(実験的) MySQL互換の多値インデックスを導入し、JSON型を拡張することで、TiDBのMySQL 8.0との互換性を向上させます。
DB操作と可観測性
DMは物理的なインポートをサポートします(実験的) TiDBデータ移行(DM)は、TiDB Lightningの物理インポートモードを統合することで、フルデータ移行のパフォーマンスを向上させ、最大10倍高速化します。
## 機能の詳細 {#feature-details} @@ -136,11 +136,11 @@ TiDB バージョン: 6.6.0- [DMR](/releases/versioning.md#development-milestone 詳細については、[ドキュメント](/foreign-key.md)を参照してください。 -- MySQL互換の複数値インデックスのサポート(実験的) [#39592](https://github.com/pingcap/tidb/issues/39592) @[xiongjiwei](https://github.com/xiongjiwei)@[qw4990](https://github.com/qw4990) +- MySQL互換の多値インデックスのサポート(実験的) [#39592](https://github.com/pingcap/tidb/issues/39592) @[xiongjiwei](https://github.com/xiongjiwei)@[qw4990](https://github.com/qw4990) - TiDB は v6.6.0 で MySQL 互換のマルチ値インデックスを導入しました。JSON 列の配列の値をフィルタリングすることは一般的な操作ですが、通常のインデックスではこの操作を高速化することはできません。配列にマルチ値インデックスを作成することで、フィルタリングのパフォーマンスを大幅に向上させることができます。JSON 列の配列にマルチ値インデックスがある場合、そのマルチ値インデックスを使用して`MEMBER OF()` 、 `JSON_CONTAINS()` 、 `JSON_OVERLAPS()`関数で取得条件をフィルタリングすることで、I/O 消費を大幅に削減し、操作速度を向上させることができます。 + TiDB は v6.6.0 で MySQL 互換の多値インデックスを導入しました。JSON 列の配列の値をフィルタリングすることは一般的な操作ですが、通常のインデックスではこの操作を高速化することはできません。配列に多値インデックスを作成することで、フィルタリングのパフォーマンスを大幅に向上させることができます。JSON 列の配列に多値インデックスがある場合、その多値インデックスを使用して`MEMBER OF()` 、 `JSON_CONTAINS()` 、 `JSON_OVERLAPS()`関数で取得条件をフィルタリングすることで、I/O 消費を大幅に削減し、操作速度を向上させることができます。 - 複数値インデックスの導入により、TiDBのJSONデータ型に対するサポートがさらに強化され、MySQL 8.0との互換性も向上します。 + 多値インデックスの導入により、TiDBのJSONデータ型に対するサポートがさらに強化され、MySQL 8.0との互換性も向上します。 詳細については、 [ドキュメント](/sql-statements/sql-statement-create-index.md#multi-valued-indexes)を参照してください。 @@ -295,7 +295,7 @@ TiDB バージョン: 6.6.0- [DMR](/releases/versioning.md#development-milestone 詳細については、このドキュメントおよび[ドキュメント](/foreign-key.md)の[SQL](#sql)セクションを参照してください。 -- MySQL互換の複数値インデックスのサポート(実験的) [#39592](https://github.com/pingcap/tidb/issues/39592) @[xiongjiwei](https://github.com/xiongjiwei)@[qw4990](https://github.com/qw4990) +- MySQL互換の多値インデックスのサポート(実験的) [#39592](https://github.com/pingcap/tidb/issues/39592) @[xiongjiwei](https://github.com/xiongjiwei)@[qw4990](https://github.com/qw4990) 詳細については、このドキュメントおよび[ドキュメント](/sql-statements/sql-statement-create-index.md#multi-valued-indexes)の[SQL](#sql)セクションを参照してください。 diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 7c0d18964d995..b61ad5827451b 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -146,9 +146,9 @@ TiDB 7.1.0 は長期サポートリリース (LTS) です。 詳細については[ドキュメント](/tiflash/tiflash-results-materialization.md)参照してください。 -- MySQL互換のマルチ値インデックスが一般提供(GA)される[#39592](https://github.com/pingcap/tidb/issues/39592) @ [xiongjiwei](https://github.com/xiongjiwei) @ [qw4990](https://github.com/qw4990) @ [YangKeao](https://github.com/YangKeao) +- MySQL互換の多値インデックスが一般提供(GA)される[#39592](https://github.com/pingcap/tidb/issues/39592) @ [xiongjiwei](https://github.com/xiongjiwei) @ [qw4990](https://github.com/qw4990) @ [YangKeao](https://github.com/YangKeao) - JSON列内の配列の値をフィルタリングすることは一般的な操作ですが、通常のインデックスではこのような操作を高速化できません。配列に複数値インデックスを作成すると、フィルタリングのパフォーマンスが大幅に向上します。JSON列の配列に複数値インデックスがある場合、 `MEMBER OF()` `JSON_CONTAINS()` `JSON_OVERLAPS()`で検索条件をフィルタリングするために複数値インデックスを使用できます。これにより、 I/O消費量が削減され、操作速度が向上します。 + JSON列内の配列の値をフィルタリングすることは一般的な操作ですが、通常のインデックスではこのような操作を高速化できません。配列に多値インデックスを作成すると、フィルタリングのパフォーマンスが大幅に向上します。JSON列の配列に多値インデックスがある場合、 `MEMBER OF()`、`JSON_CONTAINS()`、または`JSON_OVERLAPS()`で検索条件をフィルタリングするために多値インデックスを使用できます。これにより、 I/O消費量が削減され、操作速度が向上します。 バージョン7.1.0では、多値インデックス機能が一般提供(GA)されました。より包括的なデータ型をサポートし、TiDBツールとの互換性も備えています。多値インデックスを使用することで、本番環境におけるJSON配列の検索操作を高速化できます。 diff --git a/releases/release-7.1.4.md b/releases/release-7.1.4.md index 14bcbdd1112a2..2762bafbfe346 100644 --- a/releases/release-7.1.4.md +++ b/releases/release-7.1.4.md @@ -76,7 +76,7 @@ TiDBバージョン: 7.1.4 - `HashJoin`演算子がディスク[#50841](https://github.com/pingcap/tidb/issues/50841) @ [wshwsh12](https://github.com/wshwsh12)にスピルできない場合に発生する可能性のある goroutine リークの問題を修正しました。 - `REPLACE INTO`文[#34325](https://github.com/pingcap/tidb/issues/34325) @ [YangKeao](https://github.com/YangKeao)でヒントが使用できない問題を修正 - `GROUP_CONCAT(ORDER BY)`構文を含むクエリを実行するとエラー[#49986](https://github.com/pingcap/tidb/issues/49986) @ [AilinKid](https://github.com/AilinKid)が返される可能性がある問題を修正しました - - 複数値インデックスを使用して空の JSON 配列にアクセスすると、誤った結果が返される可能性がある問題を修正しました[#50125](https://github.com/pingcap/tidb/issues/50125) @ [YangKeao](https://github.com/YangKeao) + - 多値インデックスを使用して空の JSON 配列にアクセスすると、誤った結果が返される可能性がある問題を修正しました[#50125](https://github.com/pingcap/tidb/issues/50125) @ [YangKeao](https://github.com/YangKeao) - CTEクエリのメモリ使用量が制限[#50337](https://github.com/pingcap/tidb/issues/50337) @ [guo-shaoge](https://github.com/guo-shaoge)を超えたときに発生するgoroutineリークの問題を修正しました - 古いインターフェースを使用するとテーブル[#49751](https://github.com/pingcap/tidb/issues/49751) @ [hawkingrei](https://github.com/hawkingrei)のメタデータに不整合が発生する可能性がある問題を修正しました。 - `ORDER BY`句で`UNIQUE`インデックス検索を実行するとエラー[#49920](https://github.com/pingcap/tidb/issues/49920) @ [jackysp](https://github.com/jackysp)が発生する可能性がある問題を修正しました diff --git a/releases/release-7.4.0.md b/releases/release-7.4.0.md index 5b5c7a43060a9..e37f40e901bbc 100644 --- a/releases/release-7.4.0.md +++ b/releases/release-7.4.0.md @@ -298,7 +298,7 @@ TiDB バージョン: 7.4.0 - インデックスマージ交差のプッシュダウン`limit`最適化してクエリパフォーマンス[#46863](https://github.com/pingcap/tidb/issues/46863) @ [AilinKid](https://github.com/AilinKid)を向上させる - `IndexLookup`多くのテーブル取得タスクが含まれる場合に、誤ってフルテーブルスキャンを選択する可能性を最小限に抑えるようにコストモデルを改善します[#45132](https://github.com/pingcap/tidb/issues/45132) @ [qw4990](https://github.com/qw4990) - 結合除去ルールを最適化して、 `join on unique keys` [#46248](https://github.com/pingcap/tidb/issues/46248) @ [fixdb](https://github.com/fixdb)のクエリパフォーマンスを向上させます。 - - 実行エラーを回避するために、複数値インデックス列の照合順序を`binary`に変更します[#46717](https://github.com/pingcap/tidb/issues/46717) @ [YangKeao](https://github.com/YangKeao) + - 実行エラーを回避するために、多値インデックス列の照合順序を`binary`に変更します[#46717](https://github.com/pingcap/tidb/issues/46717) @ [YangKeao](https://github.com/YangKeao) - TiKV diff --git a/releases/release-7.5.1.md b/releases/release-7.5.1.md index 6a548edce11dd..db6dd9fa33102 100644 --- a/releases/release-7.5.1.md +++ b/releases/release-7.5.1.md @@ -97,14 +97,14 @@ TiDB バージョン: 7.5.1 - TiDB が履歴統計[#49076](https://github.com/pingcap/tidb/issues/49076) @ [hawkingrei](https://github.com/hawkingrei)を記録するときに TiDB のバックグラウンド ジョブ スレッドがpanicになる可能性がある問題を修正しました - TiDBがパーティションテーブル[#49023](https://github.com/pingcap/tidb/issues/49023) @ [hawkingrei](https://github.com/hawkingrei)のグローバル統計のヒストグラムをマージするときに発生する可能性のあるエラーを修正しました。 - パーティションが[#49334](https://github.com/pingcap/tidb/issues/49334) @ [Rustin170506](https://github.com/Rustin170506)に削除された後、 `stats_meta`テーブルの履歴統計が更新されない問題を修正しました - - 複数値インデックスが誤って`Index Join`プローブ側[#50382](https://github.com/pingcap/tidb/issues/50382) @ [AilinKid](https://github.com/AilinKid)として選択されたために発生する誤ったクエリ結果の問題を修正しました。 - - `USE_INDEX_MERGE`ヒントが複数値インデックス[#50553](https://github.com/pingcap/tidb/issues/50553) @ [AilinKid](https://github.com/AilinKid)に効果がない問題を修正しました + - 多値インデックスが誤って`Index Join`プローブ側[#50382](https://github.com/pingcap/tidb/issues/50382) @ [AilinKid](https://github.com/AilinKid)として選択されたために発生する誤ったクエリ結果の問題を修正しました。 + - `USE_INDEX_MERGE`ヒントが多値インデックス[#50553](https://github.com/pingcap/tidb/issues/50553) @ [AilinKid](https://github.com/AilinKid)に効果がない問題を修正しました - `INFORMATION_SCHEMA.ANALYZE_STATUS`システムテーブル[#48835](https://github.com/pingcap/tidb/issues/48835) @ [Rustin170506](https://github.com/Rustin170506)をクエリするときにユーザーがエラーを受け取る可能性がある問題を修正しました - TiDB が`group by` [#38756](https://github.com/pingcap/tidb/issues/38756) @ [Rustin170506](https://github.com/Rustin170506)の定数値を誤って削除することによる間違ったクエリ結果の問題を修正しました - テーブル上の`ANALYZE`タスクのうち`processed_rows`が、そのテーブルの合計行数[#50632](https://github.com/pingcap/tidb/issues/50632) @ [hawkingrei](https://github.com/hawkingrei)を超える可能性がある問題を修正しました。 - `tidb_enable_prepared_plan_cache`システム変数が有効になってから無効になった後に`EXECUTE`ステートメントを使用して`PREPARE STMT`実行すると、TiDB がpanicになる可能性がある問題を修正しました[#49344](https://github.com/pingcap/tidb/issues/49344) @ [qw4990](https://github.com/qw4990) - クエリで`NATURAL JOIN` [#32044](https://github.com/pingcap/tidb/issues/32044) @ [AilinKid](https://github.com/AilinKid)が使用される場合に発生する可能性のある`Column ... in from clause is ambiguous`エラーを修正します - - 複数値インデックスを使用して空の JSON 配列にアクセスすると、誤った結果が返される可能性がある問題を修正しました[#50125](https://github.com/pingcap/tidb/issues/50125) @ [YangKeao](https://github.com/YangKeao) + - 多値インデックスを使用して空の JSON 配列にアクセスすると、誤った結果が返される可能性がある問題を修正しました[#50125](https://github.com/pingcap/tidb/issues/50125) @ [YangKeao](https://github.com/YangKeao) - 集計関数をグループ計算に使用すると発生する可能性のある`Can't find column ...`エラーを修正[#50926](https://github.com/pingcap/tidb/issues/50926) @ [qw4990](https://github.com/qw4990) - 文字列型の変数に対する`SET_VAR`の制御が無効になる可能性がある問題を修正[#50507](https://github.com/pingcap/tidb/issues/50507) @ [qw4990](https://github.com/qw4990) - `tidb_server_memory_limit` [#48741](https://github.com/pingcap/tidb/issues/48741) @ [XuHuaiyu](https://github.com/XuHuaiyu)による長期メモリ圧迫により TiDB の CPU 使用率が上昇する問題を修正 diff --git a/releases/release-7.5.2.md b/releases/release-7.5.2.md index 4e5bf14879c0f..1e8cbd785726a 100644 --- a/releases/release-7.5.2.md +++ b/releases/release-7.5.2.md @@ -79,7 +79,7 @@ TiDB バージョン: 7.5.2 - 一意インデックス[#52914](https://github.com/pingcap/tidb/issues/52914) @ [wjhuang2016](https://github.com/wjhuang2016)を追加するときに同時 DML 操作によって発生するデータ インデックスの不整合の問題を修正しました。 - パーティションテーブル[#52080](https://github.com/pingcap/tidb/issues/52080) @ [tangenta](https://github.com/tangenta)に複数のスキーマ変更を含むインデックスを追加することで発生するデータインデックスの不整合の問題を修正しました。 - - 複数値インデックス[#51162](https://github.com/pingcap/tidb/issues/51162) @ [ywqzzy](https://github.com/ywqzzy)を追加することによって発生するデータ インデックスの不整合の問題を修正しました + - 多値インデックス[#51162](https://github.com/pingcap/tidb/issues/51162) @ [ywqzzy](https://github.com/ywqzzy)を追加することによって発生するデータ インデックスの不整合の問題を修正しました - ネットワークの問題によりDDL操作が停止する問題を修正[#47060](https://github.com/pingcap/tidb/issues/47060) @ [wjhuang2016](https://github.com/wjhuang2016) - 起動時に統計情報をロードするときにTiDBがGCによるエラーを報告する可能性がある問題を修正[#53592](https://github.com/pingcap/tidb/issues/53592) @ [you06](https://github.com/you06) - TiDBが準備完了していないTiKVノード[#50758](https://github.com/pingcap/tidb/issues/50758) @ [zyguan](https://github.com/zyguan)にリクエストを送信する可能性がある問題を修正 @@ -125,7 +125,7 @@ TiDB バージョン: 7.5.2 - `CPS by type`メトリックに誤った値[#52605](https://github.com/pingcap/tidb/issues/52605) @ [nolouch](https://github.com/nolouch)が表示される問題を修正しました - 特定の列の統計情報が完全にロードされていない場合に、 `EXPLAIN`ステートメントの結果に誤った列 ID が表示される可能性がある問題を修正しました[#52207](https://github.com/pingcap/tidb/issues/52207) @ [time-and-fate](https://github.com/time-and-fate) - 照合の新しいフレームワークが無効になっているときに、異なる照合を含む式によってクエリがpanicになる可能性がある問題を修正しました[#52772](https://github.com/pingcap/tidb/issues/52772) @ [wjhuang2016](https://github.com/wjhuang2016) - - 複数値インデックスを持つテーブルを含むSQL文を実行すると、 `Can't find a proper physical plan for this query`エラー[#49438](https://github.com/pingcap/tidb/issues/49438) @ [qw4990](https://github.com/qw4990)が返される可能性がある問題を修正しました。 + - 多値インデックスを持つテーブルを含むSQL文を実行すると、 `Can't find a proper physical plan for this query`エラー[#49438](https://github.com/pingcap/tidb/issues/49438) @ [qw4990](https://github.com/qw4990)が返される可能性がある問題を修正しました。 - TiDBが式[#43527](https://github.com/pingcap/tidb/issues/43527) @ [Rustin170506](https://github.com/Rustin170506)内のシステム変数の型を正しく変換できない問題を修正 - `INSERT IGNORE`実行すると、一意インデックスとデータ[#51784](https://github.com/pingcap/tidb/issues/51784) @ [wjhuang2016](https://github.com/wjhuang2016)の間に不整合が発生する可能性がある問題を修正しました。 - OOMエラー発生後に自動統計収集が停止する問題を修正[#51993](https://github.com/pingcap/tidb/issues/51993) @ [Rustin170506](https://github.com/Rustin170506) diff --git a/releases/release-7.6.0.md b/releases/release-7.6.0.md index 99f3840188152..0a1392d74f62b 100644 --- a/releases/release-7.6.0.md +++ b/releases/release-7.6.0.md @@ -410,7 +410,7 @@ v7.6.0 以降、 `TiDB-community-server`[バイナリパッケージ](/binary-pa - ヒストグラムの境界に`NULL`が含まれる場合、ヒストグラム統計が読み取り可能な文字列に解析されない可能性がある問題を修正 [#49823](https://github.com/pingcap/tidb/issues/49823) @[AilinKid](https://github.com/AilinKid) - `GROUP_CONCAT(ORDER BY)`構文を含むクエリを実行するとエラーが返される可能性がある問題を修正 [#49986](https://github.com/pingcap/tidb/issues/49986) @[AilinKid](https://github.com/AilinKid) - `UPDATE` 、 `DELETE` 、および`INSERT`ステートメントが、 `SQL_MODE`が厳密でない場合に警告ではなくオーバーフローエラーを返す問題を修正します [#49137](https://github.com/pingcap/tidb/issues/49137) @[YangKeao](https://github.com/YangKeao) - - テーブルにマルチバリューインデックスと非バイナリ型文字列で構成される複合インデックスがある場合にデータを挿入できない問題を修正 [#49680](https://github.com/pingcap/tidb/issues/49680) @[YangKeao](https://github.com/YangKeao) + - テーブルに多値インデックスと非バイナリ型文字列で構成される複合インデックスがある場合にデータを挿入できない問題を修正 [#49680](https://github.com/pingcap/tidb/issues/49680) @[YangKeao](https://github.com/YangKeao) - 多階層にネストされた`LIMIT`クエリ内の`UNION`無効になる可能性がある問題を修正 [#49874](https://github.com/pingcap/tidb/issues/49874) @[Defined2014](https://github.com/Defined2014) - `BETWEEN ... AND ...`条件を使用してパーティション テーブルをクエリすると誤った結果が返される問題を修正 [#49842](https://github.com/pingcap/tidb/issues/49842) @[Defined2014](https://github.com/Defined2014) - `REPLACE INTO`ステートメントでヒントが使用できない問題を修正 [#34325](https://github.com/pingcap/tidb/issues/34325) @[YangKeao](https://github.com/YangKeao) diff --git a/releases/release-8.0.0.md b/releases/release-8.0.0.md index bcde9105a7a6e..b77b3dc90fa5f 100644 --- a/releases/release-8.0.0.md +++ b/releases/release-8.0.0.md @@ -87,9 +87,9 @@ TiDB バージョン: 8.0.0 - オプティマイザーが多値インデックスのサポートを強化[#47759](https://github.com/pingcap/tidb/issues/47759) [#46539](https://github.com/pingcap/tidb/issues/46539) @[Arenatlx](https://github.com/Arenatlx)@[time-and-fate](https://github.com/time-and-fate) - TiDB v6.6.0 では[複数値インデックス](/sql-statements/sql-statement-create-index.md#multi-valued-indexes)が導入され、JSON データ型のクエリ パフォーマンスが向上しました。v8.0.0 では、オプティマイザがマルチ値インデックスのサポートを強化し、複雑なシナリオでクエリを最適化するために、それらを正しく識別して利用できるようになりました。 + TiDB v6.6.0 では[多値インデックス](/sql-statements/sql-statement-create-index.md#multi-valued-indexes)が導入され、JSON データ型のクエリ パフォーマンスが向上しました。v8.0.0 では、オプティマイザが多値インデックスのサポートを強化し、複雑なシナリオでクエリを最適化するために、それらを正しく識別して利用できるようになりました。 - - オプティマイザは、複数値インデックスに関する統計情報を収集し、その統計情報に基づいて実行プランを決定します。SQL文で複数の複数値インデックスを選択できる場合、オプティマイザはコストが最も低いインデックスを特定できます。 + - オプティマイザは、多値インデックスに関する統計情報を収集し、その統計情報に基づいて実行プランを決定します。SQL文で複数の多値インデックスを選択できる場合、オプティマイザはコストが最も低いインデックスを特定できます。 - `OR`を使用して複数の`member of`条件を接続する場合、オプティマイザは各 DNF 項目 ( `member of`条件) に対して有効なインデックス部分パスを照合し、これらのパスを Union を使用して結合して`Index Merge`を形成できます。これにより、条件フィルタリングとデータ取得の効率が向上します。 詳細については、 [ドキュメント](/sql-statements/sql-statement-create-index.md#multi-valued-indexes)を参照してください。 @@ -340,7 +340,7 @@ TiDB バージョン: 8.0.0 - TiKVの負荷が高い時に広範囲にわたるタイムアウトが発生するのを避けるため、統計情報を同期的にロードするタスクの優先度を一時的に「高」に調整します。タイムアウトが発生すると、統計情報がロードされない可能性があります。 [#50332](https://github.com/pingcap/tidb/issues/50332) @[winoros](https://github.com/winoros) - `PREPARE`ステートメントが実行プランキャッシュにヒットしなかった場合、TiDB では`SHOW WARNINGS`を実行することで理由を確認できます。 [#50407](https://github.com/pingcap/tidb/issues/50407) @[hawkingrei](https://github.com/hawkingrei) - 同じデータ行が複数回更新された場合のクエリ推定情報の精度を向上させる [#47523](https://github.com/pingcap/tidb/issues/47523) @[terry1purcell](https://github.com/terry1purcell) - - インデックスマージは、 `OR`述語への複数値インデックスと`AND`演算子の埋め込みをサポートします [#51778](https://github.com/pingcap/tidb/issues/51778) @[time-and-fate](https://github.com/time-and-fate) + - インデックスマージは、 `OR`述語への多値インデックスと`AND`演算子の埋め込みをサポートします [#51778](https://github.com/pingcap/tidb/issues/51778) @[time-and-fate](https://github.com/time-and-fate) - `force-init-stats` `true`に設定すると、TiDB は TiDB 起動中にサービスを提供する前に統計情報の初期化が完了するまで待機します。この設定により HTTP サーバーの起動がブロックされなくなり、ユーザーは引き続き監視できるようになります [#50854](https://github.com/pingcap/tidb/issues/50854) @[hawkingrei](https://github.com/hawkingrei) - MemoryTracker は `IndexLookup` 演算子のメモリ使用量を追跡できます [#45901](https://github.com/pingcap/tidb/issues/45901) @[solotzg](https://github.com/solotzg) - MemoryTracker は `MemTableReaderExec` オペレーターのメモリ使用量を追跡できます [#51456](https://github.com/pingcap/tidb/issues/51456) @[wshwsh12](https://github.com/wshwsh12) diff --git a/releases/release-8.1.0.md b/releases/release-8.1.0.md index 98f4f65c42460..35c3bf903e78c 100644 --- a/releases/release-8.1.0.md +++ b/releases/release-8.1.0.md @@ -185,7 +185,7 @@ TiDB 8.1.0 は長期サポートリリース (LTS) です。 - TiDB - - 複数値インデックスを持つテーブルを含むSQL文を実行すると、 `Can't find a proper physical plan for this query`エラー[#49438](https://github.com/pingcap/tidb/issues/49438) @ [qw4990](https://github.com/qw4990)が返される可能性がある問題を修正しました。 + - 多値インデックスを持つテーブルを含むSQL文を実行すると、 `Can't find a proper physical plan for this query`エラー[#49438](https://github.com/pingcap/tidb/issues/49438) @ [qw4990](https://github.com/qw4990)が返される可能性がある問題を修正しました。 - OOMエラー発生後に自動統計収集が停止する問題を修正[#51993](https://github.com/pingcap/tidb/issues/51993) @ [Rustin170506](https://github.com/Rustin170506) - BRを使用して統計情報のないテーブルを復元した後、そのテーブルの統計の健全性が 100% [#29769](https://github.com/pingcap/tidb/issues/29769) @ [winoros](https://github.com/winoros)のままになる問題を修正しました。 - アップグレード[#52040](https://github.com/pingcap/tidb/issues/52040) @ [Rustin170506](https://github.com/Rustin170506)中に TiDB がシステム テーブルの統計を作成する問題を修正しました diff --git a/releases/release-8.3.0.md b/releases/release-8.3.0.md index b6ea34476fa3c..67f66012f704d 100644 --- a/releases/release-8.3.0.md +++ b/releases/release-8.3.0.md @@ -236,7 +236,7 @@ TiDBバージョン:8.3.0 - インデックス順序を使用して、 `WHERE idx_col_1 IS NULL ORDER BY idx_col_2`のような SQL クエリの余分なソート操作を回避します [#54188](https://github.com/pingcap/tidb/issues/54188) @[ari-e](https://github.com/ari-e) - `mysql.analyze_jobs`システムテーブル [#53567](https://github.com/pingcap/tidb/issues/53567) @[Rustin170506](https://github.com/Rustin170506)に分析済みインデックスを表示します。 - `tidb_redact_log`ステートメントの出力に`EXPLAIN`設定を適用することをサポートし、ログ処理ロジックをさらに最適化します [#54565](https://github.com/pingcap/tidb/issues/54565) @[hawkingrei](https://github.com/hawkingrei) - - クエリ効率を向上させるため、複数値インデックスに対して`Selection` `IndexRangeScan`演算子を生成するサポート [#54876](https://github.com/pingcap/tidb/issues/54876) @[time-and-fate](https://github.com/time-and-fate) + - クエリ効率を向上させるため、多値インデックスに対して`Selection` `IndexRangeScan`演算子を生成するサポート [#54876](https://github.com/pingcap/tidb/issues/54876) @[time-and-fate](https://github.com/time-and-fate) - 設定された時間枠外で実行されている自動タスク`ANALYZE`の強制終了をサポート [#55283](https://github.com/pingcap/tidb/issues/55283) @[hawkingrei](https://github.com/hawkingrei) - 統計情報が完全に TopN で構成され、対応するテーブル統計情報の変更された行数がゼロでない場合、TopN に到達しない等価条件の推定結果を 0 から 1 に調整します。 [#47400](https://github.com/pingcap/tidb/issues/47400) @[terry1purcell](https://github.com/terry1purcell) - TopNオペレーターはディスクスピルをサポートします [#47733](https://github.com/pingcap/tidb/issues/47733) @[xzhangxian1008](https://github.com/xzhangxian1008) diff --git a/releases/release-8.5.0.md b/releases/release-8.5.0.md index e66275eccbbfe..d437037130337 100644 --- a/releases/release-8.5.0.md +++ b/releases/release-8.5.0.md @@ -181,7 +181,7 @@ TiDB をアップグレードする前に、オペレーティング システ - パーティション式のすべての列を含むグローバル インデックスをサポート [#56230](https://github.com/pingcap/tidb/issues/56230) @[Defined2014](https://github.com/Defined2014) - 範囲クエリのシナリオでリスト パーティション テーブルのパーティション プルーニングをサポート [#56673](https://github.com/pingcap/tidb/issues/56673) @[Defined2014](https://github.com/Defined2014) - FixControl#46177 をデフォルトで有効にして、場合によってはインデックス範囲スキャンではなくフルテーブルスキャンが誤って選択される問題を修正します [#46177](https://github.com/pingcap/tidb/issues/46177) @[terry1purcell](https://github.com/terry1purcell) - - 複数列および複数値インデックスの統計情報をより有効に活用するために内部推定ロジックを改善し、複数値インデックスを含む特定のクエリの推定精度を向上させます [#56915](https://github.com/pingcap/tidb/issues/56915) @[time-and-fate](https://github.com/time-and-fate) + - 複数列および多値インデックスの統計情報をより有効に活用するために内部推定ロジックを改善し、多値インデックスを含む特定のクエリの推定精度を向上させます [#56915](https://github.com/pingcap/tidb/issues/56915) @[time-and-fate](https://github.com/time-and-fate) - 特定のシナリオにおけるフルテーブルスキャンのコスト見積もりを改善し、フルテーブルスキャンを誤って選択する可能性を低減します [#57085](https://github.com/pingcap/tidb/issues/57085) @[terry1purcell](https://github.com/terry1purcell) - 統計情報の同期読み込みに必要なデータ量を最適化して読み込みパフォーマンスを向上させる [#56812](https://github.com/pingcap/tidb/issues/56812) @[winoros](https://github.com/winoros) - `OUTER JOIN`に一意インデックスと`ORDER BY ... LIMIT`句が含まれる特定のケースで実行プランを最適化し、実行効率を向上させます [#56321](https://github.com/pingcap/tidb/issues/56321) @[winoros](https://github.com/winoros) diff --git a/sql-statements/sql-statement-create-index.md b/sql-statements/sql-statement-create-index.md index 9ad401596326b..592735abf98ff 100644 --- a/sql-statements/sql-statement-create-index.md +++ b/sql-statements/sql-statement-create-index.md @@ -255,7 +255,7 @@ SELECT MIN(col1) FROM t GROUP BY LOWER(col1); ## 多値インデックス {#multi-valued-indexes} -マルチバリューインデックスは、配列列に定義されるセカンダリインデックスの一種です。通常のインデックスでは、1つのインデックスレコードが1つのデータレコードに対応します(1:1)。マルチバリューインデックスでは、複数のインデックスレコードが1つのデータレコードに対応します(N:1)。マルチバリューインデックスは、JSON配列のインデックス付けに使用されます。たとえば、 `zipcode`フィールドに定義されたマルチバリューインデックスは`zipcode`配列の各要素に対して1つのインデックスレコードを生成します。 +多値インデックスは、配列列に定義されるセカンダリインデックスの一種です。通常のインデックスでは、1つのインデックスレコードが1つのデータレコードに対応します(1:1)。多値インデックスでは、複数のインデックスレコードが1つのデータレコードに対応します(N:1)。多値インデックスは、JSON配列のインデックス付けに使用されます。たとえば、 `zipcode`フィールドに定義された多値インデックスは`zipcode`配列の各要素に対して1つのインデックスレコードを生成します。 ```json { @@ -265,9 +265,9 @@ SELECT MIN(col1) FROM t GROUP BY LOWER(col1); } ``` -### 複数値インデックスを作成する {#create-multi-valued-indexes} +### 多値インデックスを作成する {#create-multi-valued-indexes} -式インデックスを作成するのと同様に、インデックス定義で[`CAST(... AS ... ARRAY)`](/functions-and-operators/cast-functions-and-operators.md#cast)関数を使用することで、複数値のインデックスを作成できます。 +式インデックスを作成するのと同様に、インデックス定義で[`CAST(... AS ... ARRAY)`](/functions-and-operators/cast-functions-and-operators.md#cast)関数を使用することで、多値インデックスを作成できます。 ```sql mysql> CREATE TABLE customers ( @@ -278,7 +278,7 @@ mysql> CREATE TABLE customers ( ); ``` -複数値インデックスを一意インデックスとして定義することができます。 +多値インデックスを一意インデックスとして定義することができます。 ```sql mysql> CREATE TABLE customers ( @@ -289,7 +289,7 @@ mysql> CREATE TABLE customers ( ); ``` -複数値インデックスを一意インデックスとして定義した場合、重複データを挿入しようとするとエラーが報告されます。 +多値インデックスを一意インデックスとして定義した場合、重複データを挿入しようとするとエラーが報告されます。 ```sql mysql> INSERT INTO customers VALUES (1, 'pingcap', '{"zipcode": [1,2]}'); @@ -311,7 +311,7 @@ mysql> INSERT INTO t1 VALUES('[1,2]'); mysql> INSERT INTO t1 VALUES('[2,3]'); ``` -複数値インデックスを複合インデックスとして定義することもできます。 +多値インデックスを複合インデックスとして定義することもできます。 ```sql mysql> CREATE TABLE customers ( @@ -348,22 +348,22 @@ mysql> INSERT INTO customers VALUES (1, 'pingcap', '{"zipcode": [1]}'); Query OK, 1 row affected (0.00 sec) ``` -### 複数値インデックスを使用する {#use-multi-valued-indexes} +### 多値インデックスを使用する {#use-multi-valued-indexes} -詳細については [インデックスの選択 - 複数値インデックスを使用する](/choose-index.md#use-multi-valued-indexes)参照してください。 +詳細については、[インデックスの選択 - 多値インデックスを使用する](/choose-index.md#use-multi-valued-indexes)を参照してください。 ### 制限事項 {#limitations} - 空のJSON配列の場合、対応するインデックスレコードは生成されません。 - `CAST(... AS ... ARRAY)`のターゲットタイプは`BINARY` 、 `JSON` 、 `YEAR` 、 `FLOAT` 、および`DECIMAL`いずれにもなりません。ソースタイプは JSON である必要があります。 -- 複数値インデックスをソートに使用することはできません。 -- JSON配列に対してのみ、複数値のインデックスを作成できます。 -- 複数値インデックスは、主キーまたは外部キーとして使用することはできません。 -- 複数値インデックスが使用する追加のストレージ領域は、1行あたりの配列要素の平均数×通常のセカンダリインデックスが使用する領域に等しくなります。 +- 多値インデックスをソートに使用することはできません。 +- JSON配列に対してのみ、多値インデックスを作成できます。 +- 多値インデックスは、主キーまたは外部キーとして使用することはできません。 +- 多値インデックスが使用する追加のストレージ領域は、1行あたりの配列要素の平均数×通常のセカンダリインデックスが使用する領域に等しくなります。 - 通常のインデックスと比較して、多値インデックスではDML操作によって変更されるインデックスレコードの数が多くなるため、多値インデックスは通常のインデックスよりもパフォーマンスに大きな影響を与えます。 - 多値インデックスは式インデックスの特殊なタイプであるため、式インデックスと同様の制限があります。 -- テーブルが複数値インデックスを使用している場合、 BR、TiCDC、またはTiDB Lightningを使用して、v6.6.0より前のTiDBクラスタにテーブルをバックアップ、レプリケート、またはインポートすることはできません。 -- 複雑な条件を含むクエリの場合、TiDB は複数値のインデックスを選択できない場合があります。多値インデックスでサポートされる条件パターンについては、 [複数値インデックスを使用する](/choose-index.md#use-multi-valued-indexes)を参照してください。 +- テーブルが多値インデックスを使用している場合、 BR、TiCDC、またはTiDB Lightningを使用して、v6.6.0より前のTiDBクラスタにテーブルをバックアップ、レプリケート、またはインポートすることはできません。 +- 複雑な条件を含むクエリの場合、TiDB は多値インデックスを選択できない場合があります。多値インデックスでサポートされる条件パターンについては、 [多値インデックスを使用する](/choose-index.md#use-multi-valued-indexes)を参照してください。 ## 不可視インデックス {#invisible-index} @@ -400,7 +400,7 @@ TiDB v8.0.0以降では、システム変数[`tidb_opt_use_invisible_indexes`](/ - 式インデックスはバインディングとの互換性に問題があります。式インデックスの式に定数が含まれている場合、対応するクエリ用に作成されるバインディングのスコープが拡張されます。たとえば、式インデックスの式が`a+1`で、対応するクエリ条件が`a+1 > 2`であるとします。この場合、作成されるバインディングは`a+? > ?`となり、 `a+2 > 2`のような条件を持つクエリも式インデックスの使用を強制され、実行プランが最適化されません。さらに、これは SQL プラン管理 (SPM) におけるベースラインのキャプチャとベースラインの進化にも影響します。 -- 複数値インデックスを使用して書き込まれるデータは、定義されたデータ型と正確に一致する必要があります。そうしないと、データの書き込みは失敗します。詳細については、 [複数値インデックスを作成する](/sql-statements/sql-statement-create-index.md#create-multi-valued-indexes)参照してください。 +- 多値インデックスを使用して書き込まれるデータは、定義されたデータ型と正確に一致する必要があります。そうしないと、データの書き込みは失敗します。詳細については、 [多値インデックスを作成する](/sql-statements/sql-statement-create-index.md#create-multi-valued-indexes)参照してください。 - `UNIQUE KEY`インデックス オプションを使用して、 `GLOBAL`を[グローバルインデックス](/global-indexes.md)として設定することは[パーティション化されたテーブル](/partitioned-table.md)の TiDB 拡張機能であり、MySQL とは互換性がありません。