SELECT例 {#code-select-code-example}
@@ -187,14 +187,14 @@ try (Connection connection = ds.getConnection()) {
ご覧のとおり、JDBC はプリペアドステートメントのライフサイクルを制御するのに役立ち、アプリケーション内でプリペアドステートメントを手動で作成、使用、または削除する必要はありません。ただし、TiDB は MySQL と互換性があるため、クライアント側で MySQL JDBCDriverを使用する場合のデフォルト設定では、***サーバー側***プリペアドステートメントオプションが有効にならず、クライアント側プリペアドステートメントが使用されることに注意してください。
-次の構成は、JDBC で TiDB サーバー側の準備済みステートメントを使用するのに役立ちます。
+次の構成は、JDBC で TiDB サーバー側のプリペアドステートメントを使用するのに役立ちます。
| パラメータ | 手段 | 推奨シナリオ | 推奨コンフィグレーション |
| :---------------------: | :--------------------------------: | :-------------------------: | :---------------------------: |
-| `useServerPrepStmts` | サーバー側を使用して準備済みステートメントを有効にするかどうか | プリペアドステートメントを複数回使用する必要がある場合 | `true` |
-| `cachePrepStmts` | クライアントが準備されたステートメントをキャッシュするかどうか | `useServerPrepStmts=true` | `true` |
+| `useServerPrepStmts` | サーバー側を使用してプリペアドステートメントを有効にするかどうか | プリペアドステートメントを複数回使用する必要がある場合 | `true` |
+| `cachePrepStmts` | クライアントがプリペアドステートメントをキャッシュするかどうか | `useServerPrepStmts=true` | `true` |
| `prepStmtCacheSqlLimit` | プリペアドステートメントの最大サイズ(デフォルトでは 256 文字) | プリペアドステートメントが256文字を超える場合 | プリペアドステートメントの実際のサイズに応じて構成されます |
-| `prepStmtCacheSize` | 準備されたステートメントの最大数(デフォルトでは 25) | 準備された文の数が25を超える場合 | 準備されたステートメントの実際の数に応じて構成されます |
+| `prepStmtCacheSize` | プリペアドステートメントの最大数(デフォルトでは 25) | プリペアドステートメントの数が25を超える場合 | プリペアドステートメントの実際の数に応じて構成されます |
以下は、JDBC接続文字列構成の一般的なシナリオです。ホスト: `127.0.0.1` 、ポート: `4000` 、ユーザー名: `root` 、パスワード: null、デフォルトデータベース: `test` :
diff --git a/develop/java-app-best-practices.md b/develop/java-app-best-practices.md
index 28532a5ea5b04..ab4b1a6421961 100644
--- a/develop/java-app-best-practices.md
+++ b/develop/java-app-best-practices.md
@@ -317,7 +317,7 @@ MyBatis Mapperは2つのパラメータをサポートしています。
このマッパーは`insert on duplicate key update`ステートメントを生成します。 `(?,?,?)`に続く「値」の数は、渡されたリストの数によって決まります。最終的な効果は`rewriteBatchStatements=true`を使用した場合と同様で、クライアントと TiDB 間の通信オーバーヘッドを効果的に削減します。
-前述のとおり、準備済みステートメントの最大長が`prepStmtCacheSqlLimit`の値を超えると、キャッシュされないことにも注意する必要があります。
+前述のとおり、プリペアドステートメントの最大長が`prepStmtCacheSqlLimit`の値を超えると、キャッシュされないことにも注意する必要があります。
#### ストリーミング結果 {#streaming-result}
@@ -347,9 +347,9 @@ Cursor44262 v6.5.3 および v7.2.0 の新機能 {#a-href-https-github-com-pingcap-tidb-issues-44262-code-44262-code-a-span-class-version-mark-new-in-v6-5-3-and-v7-2-0-span}
diff --git a/optimizer-hints.md b/optimizer-hints.md
index 1a0317c71bbf8..40eb6b4d39b1f 100644
--- a/optimizer-hints.md
+++ b/optimizer-hints.md
@@ -770,7 +770,7 @@ select /*+ READ_CONSISTENT_REPLICA() */ * from t;
`IGNORE_PLAN_CACHE()`ヒントは、現在の`prepare`ステートメントを処理するときにプラン キャッシュを使用しないようにオプティマイザーに通知します。
-このヒントは、 [プランキャッシュの準備](/sql-prepared-plan-cache.md)有効な場合に、特定の種類のクエリのプラン キャッシュを一時的に無効にするために使用されます。
+このヒントは、 [プリペアドプランキャッシュ](/sql-prepared-plan-cache.md)有効な場合に、特定の種類のクエリのプラン キャッシュを一時的に無効にするために使用されます。
次の例では、 `prepare`ステートメントを実行するときにプラン キャッシュが強制的に無効になります。
diff --git a/partitioned-table.md b/partitioned-table.md
index 1833a398f3fa7..fcd34a1655533 100644
--- a/partitioned-table.md
+++ b/partitioned-table.md
@@ -1834,7 +1834,7 @@ mysql> explain select /*+ TIDB_INLJ(t1, t2) */ t1.* from t1, t2 where t2.code =
例2から、 `dynamic`モードでは、クエリを実行するとIndexJoinを使用した実行プランが選択されることがわかります。
-現在、 `static`プルーニング モードは、準備済みステートメントと未準備ステートメントの両方のプラン キャッシュをサポートしていません。
+現在、 `static`プルーニング モードは、プリペアドステートメントと非プリペアドステートメントの両方のプラン キャッシュをサポートしていません。
### 動的プルーニングモードでパーティションテーブルの統計情報を更新する {#update-statistics-of-partitioned-tables-in-dynamic-pruning-mode}
diff --git a/performance-tuning-methods.md b/performance-tuning-methods.md
index 871dfdcde7d3d..01c62fb912b09 100644
--- a/performance-tuning-methods.md
+++ b/performance-tuning-methods.md
@@ -74,7 +74,7 @@ TiDBは、SQL処理パスとデータベース時間を継続的に測定・収
- 緑: `Update`および`Commit` `Insert` DMLステートメント
- 赤: `StmtPrepare` `StmtReset`含む一般的`StmtClose` SQL `StmtFetch`
-- SQLフェーズ別データベース時間:SQL実行フェーズは緑色で、その他のフェーズは赤色で表示されます。緑色以外の領域が大きい場合は、実行フェーズ以外のフェーズでデータベース時間が大量に消費されていることを意味し、さらなる原因分析が必要です。よくあるシナリオとしては、準備済みのプランキャッシュが利用できないために、オレンジ色で表示されるコンパイルフェーズで大きな領域が消費されているケースが挙げられます。
+- SQLフェーズ別データベース時間:SQL実行フェーズは緑色で、その他のフェーズは赤色で表示されます。緑色以外の領域が大きい場合は、実行フェーズ以外のフェーズでデータベース時間が大量に消費されていることを意味し、さらなる原因分析が必要です。よくあるシナリオとしては、プリペアドプランキャッシュが利用できないために、オレンジ色で表示されるコンパイルフェーズで大きな領域が消費されているケースが挙げられます。
- SQL実行時間の概要:緑のメトリックは一般的なKV書き込みリクエスト( `Prewrite`や`Commit`など)、青のメトリックは一般的なKV読み取りリクエスト(CopやGetなど)、紫のメトリックはTiFlash MPPリクエストを表します。その他の色のメトリックは、注意が必要な予期しない状況を表します。例えば、悲観的ロックKVリクエストは赤で、TSO待機は濃い茶色でマークされています。青や緑以外の領域が大きい場合、SQL実行中にボトルネックが発生していることを意味します。例:
@@ -139,30 +139,30 @@ TiDBは、SQL処理パスとデータベース時間を継続的に測定・収
### TiDB の主要メトリクスとクラスタ リソースの使用率 {#tidb-key-metrics-and-cluster-resource-utilization}
-#### 1秒あたりのクエリ数、1秒あたりのコマンド数、準備済みプランキャッシュ {#query-per-second-command-per-second-and-prepared-plan-cache}
+#### 1秒あたりのクエリ数、1秒あたりのコマンド数、プリペアドプランキャッシュ {#query-per-second-command-per-second-and-prepared-plan-cache}
-パフォーマンス概要の次の 3 つのパネルを確認することで、アプリケーションのワークロード タイプ、アプリケーションが TiDB と対話する方法、アプリケーションが TiDB [準備されたプランキャッシュ](/sql-prepared-plan-cache.md)最大限に活用しているかどうかを知ることができます。
+パフォーマンス概要の次の 3 つのパネルを確認することで、アプリケーションのワークロード タイプ、アプリケーションが TiDB と対話する方法、アプリケーションが TiDB [プリペアドプランキャッシュ](/sql-prepared-plan-cache.md)を最大限に活用しているかどうかを知ることができます。
- QPS: Query Per Second(1秒あたりのクエリ数)の略。アプリケーションによって実行されたSQL文の数を示します。
- CPSタイプ別:Command Per Secondの略。コマンドはMySQLプロトコル固有のコマンドを示します。クエリ文は、クエリコマンドまたはプリペアドステートメントのいずれかによってTiDBに送信できます。
- プラン キャッシュ OPS を使用するクエリ: `avg-hit` 、TiDB クラスターで 1 秒あたりに実行プラン キャッシュを使用するクエリの数であり、 `avg-miss` 、TiDB クラスターで 1 秒あたりに実行プラン キャッシュを使用しないクエリの数です。
- `avg-hit + avg-miss`は`StmtExecute`に等しく、これは1秒あたりに実行される全クエリ数です。TiDBで準備済みプランキャッシュを有効にすると、以下の3つのシナリオが発生します。
+ `avg-hit + avg-miss`は`StmtExecute`に等しく、これは1秒あたりに実行される全クエリ数です。TiDBでプリペアドプランキャッシュを有効にすると、以下の3つのシナリオが発生します。
- - 準備されたプランキャッシュにヒットしません。1(1秒あたりのヒット`avg-hit` )は`avg-miss` 1秒あたりのコマンド数`StmtExecute`に相当します。考えられる理由は次のとおりです。
+ - プリペアドプランキャッシュにヒットしない場合:`avg-hit`(1秒あたりのヒット数)は 0 で、`avg-miss` は 1秒あたりの`StmtExecute`コマンド数に相当します。考えられる理由は次のとおりです。
- アプリケーションはクエリ インターフェイスを使用しています。
- アプリケーションは`StmtExecute`実行ごとに`StmtClose`コマンドを呼び出すため、キャッシュされたプランはクリーンアップされます。
- - `StmtExecute`によって実行されるすべてのステートメントは[キャッシュ条件](/sql-prepared-plan-cache.md)満たさないため、実行プラン キャッシュにヒットできません。
- - 準備されたすべてのプラン キャッシュがヒットします。1 (1 秒あたりのヒット数) `avg-hit` 1 秒あたり`StmtExecute`コマンドの数に等しく、 `avg-miss` (1 秒あたりのヒットがない数) は 0 です。
- - 準備済みプランキャッシュの一部がヒットしました。1(1秒あたりのヒット数) `avg-hit` 、1秒あたりのコマンド数`StmtExecute`より少ないです。準備済みプランキャッシュには既知の制限があります。例えば、サブクエリをサポートしていないため、サブクエリを含むSQL文では準備済みプランキャッシュを使用できません。
+ - `StmtExecute`によって実行されるすべてのステートメントは[キャッシュ条件](/sql-prepared-plan-cache.md)を満たさないため、実行プランキャッシュにヒットできません。
+ - すべてのプリペアドプランキャッシュにヒットする場合:`avg-hit`(1秒あたりのヒット数)は 1秒あたりの`StmtExecute`コマンド数に等しく、`avg-miss`(1秒あたりのヒットしない数)は 0 です。
+ - プリペアドプランキャッシュの一部にヒットする場合:`avg-hit`(1秒あたりのヒット数)は 1秒あたりの`StmtExecute`コマンド数より少ないです。プリペアドプランキャッシュには既知の制限があります。例えば、サブクエリをサポートしていないため、サブクエリを含むSQL文ではプリペアドプランキャッシュを使用できません。
**例1: TPC-Cワークロード**
-TPC-C ワークロードは主に`UPDATE` 、 `SELECT` 、 `INSERT`文です。合計 QPS は 1 秒あたり`StmtExecute`コマンドの数に等しく、後者は Queries Using Plan Cache OPS パネルでほぼ`avg-hit`に等しくなります。理想的には、クライアントはプリペアドステートメントのオブジェクトをキャッシュします。これにより、SQL ステートメントの実行時にキャッシュされたステートメントが直接呼び出されます。すべての SQL 実行は準備済みプランキャッシュにヒットするため、実行プランを生成するために再コンパイルする必要はありません。
+TPC-C ワークロードは主に`UPDATE` 、 `SELECT` 、 `INSERT`文です。合計 QPS は 1 秒あたり`StmtExecute`コマンドの数に等しく、後者は Queries Using Plan Cache OPS パネルでほぼ`avg-hit`に等しくなります。理想的には、クライアントはプリペアドステートメントのオブジェクトをキャッシュします。これにより、SQL ステートメントの実行時にキャッシュされたステートメントが直接呼び出されます。すべての SQL 実行はプリペアドプランキャッシュにヒットするため、実行プランを生成するために再コンパイルする必要はありません。

-**例 2: 準備されたプラン キャッシュは読み取り専用 OLTP ワークロードのクエリ コマンドには使用できません**
+**例 2: プリペアドプランキャッシュは読み取り専用 OLTP ワークロードのクエリ コマンドには使用できません**
このワークロードでは、 `Commit QPS` = `Rollback QPS` = `Select QPS` 。アプリケーションは自動コミット同時実行を有効にしており、接続プールから接続がフェッチされるたびにロールバックが実行されます。その結果、これら3つの文は同じ回数実行されます。
@@ -170,29 +170,29 @@ TPC-C ワークロードは主に`UPDATE` 、 `SELECT` 、 `INSERT`文です。
- QPSパネルの赤い太線は失敗したクエリを表し、右側のY軸は失敗したクエリの数を示しています。0以外の値は、失敗したクエリが存在することを意味します。
- 合計 QPS は、CPS By Type パネルのクエリの数と等しく、クエリ コマンドがアプリケーションによって使用されています。
-- プランキャッシュを使用するクエリOPSパネルにはデータが表示されません。これは、クエリコマンドで準備されたプランキャッシュが利用できないためです。つまり、TiDBはクエリ実行ごとに実行プランを解析して生成する必要があります。その結果、TiDBによるCPU消費量の増加に伴い、コンパイル時間が長くなります。
+- プランキャッシュを使用するクエリOPSパネルにはデータが表示されません。これは、クエリコマンドでプリペアドプランキャッシュが利用できないためです。つまり、TiDBはクエリ実行ごとに実行プランを解析して生成する必要があります。その結果、TiDBによるCPU消費量の増加に伴い、コンパイル時間が長くなります。
-**例3: OLTPワークロードに対してプリペアドステートメントが有効になっている場合、準備済みプランキャッシュは利用できません**
+**例3: OLTPワークロードに対してプリペアドステートメントが有効になっている場合、プリペアドプランキャッシュは利用できません**
`StmtPrepare`回 = `StmtExecute`回 = `StmtClose`回 ~= `StmtFetch`回。アプリケーションは準備 > 実行 > フェッチ > クローズのループを使用します。プリペアドステートメントオブジェクトのリークを防ぐため、多くのアプリケーションフレームワークは`execute`フェーズの後に`close`呼び出します。これにより、2つの問題が発生します。
- SQL 実行には 4 つのコマンドと 4 回のネットワーク ラウンドトリップが必要です。
-- プランキャッシュを使用するクエリのOPSは0で、準備されたプランキャッシュのヒットがゼロであることを示しています。1 `StmtClose`のコマンドはデフォルトでキャッシュされた実行プランをクリアし、次の`StmtPrepare`コマンドで実行プランを再度生成する必要があります。
+- プランキャッシュを使用するクエリのOPSは0で、プリペアドプランキャッシュのヒットがゼロであることを示しています。`StmtClose`のコマンドはデフォルトでキャッシュされた実行プランをクリアし、次の`StmtPrepare`コマンドで実行プランを再度生成する必要があります。
> **注記:**
>
-> TiDB v6.0.0以降では、グローバル変数( `set global tidb_ignore_prepared_cache_close_stmt=on;` )を介して、 `StmtClose`コマンドによるキャッシュされた実行プランのクリアを防止できます。これにより、後続の実行では準備されたプランキャッシュを利用できます。
+> TiDB v6.0.0以降では、グローバル変数( `set global tidb_ignore_prepared_cache_close_stmt=on;` )を介して、 `StmtClose`コマンドによるキャッシュされた実行プランのクリアを防止できます。これにより、後続の実行ではプリペアドプランキャッシュを利用できます。

-**例4: 準備されたステートメントにリソースリークがある**
+**例4: プリペアドステートメントにリソースリークがある**
-1 秒あたり`StmtPrepare`コマンドの数は 1 秒あたり`StmtClose`コマンドの数よりはるかに多く、これはアプリケーションに準備されたステートメントのオブジェクト リークがあることを示しています。
+1 秒あたり`StmtPrepare`コマンドの数は 1 秒あたり`StmtClose`コマンドの数よりはるかに多く、これはアプリケーションにプリペアドステートメントのオブジェクト リークがあることを示しています。

- QPSパネルでは、赤い太線が失敗したクエリの数を示し、右側のY軸がその数値の座標値を示しています。この例では、1秒あたりの失敗したクエリの数は74.6です。
-- CPS By Type パネルでは、1 秒あたり`StmtPrepare`コマンドの数が 1 秒あたり`StmtClose`コマンドの数よりはるかに多く、準備されたステートメントのアプリケーションでオブジェクト リークが発生していることを示しています。
+- CPS By Type パネルでは、1 秒あたり`StmtPrepare`コマンドの数が 1 秒あたり`StmtClose`コマンドの数よりはるかに多く、プリペアドステートメントのアプリケーションでオブジェクト リークが発生していることを示しています。
- プラン キャッシュを使用したクエリ OPS パネルでは、 `avg-miss`タイプ別 CPS パネルの`StmtExecute`とほぼ等しく、ほとんどすべての SQL 実行で実行プラン キャッシュが失われていることを示しています。
#### KV/TSO 要求 OPS とソース別の KV 要求時間 {#kv-tso-request-ops-and-kv-request-time-by-source}
@@ -370,29 +370,29 @@ TiDB での SQL 処理は、 `get token` 、 `parse` 、 `compile` 、 `execute`
- `get token` : 通常は数マイクロ秒程度で無視できます。トークンは、単一のTiDBインスタンスへの接続数が[トークン制限](/tidb-configuration-file.md)上限に達した場合にのみ制限されます。
- `parse` : クエリ ステートメントは抽象構文ツリー (AST) に解析されます。
-- `compile` : 実行計画は、第`parse`フェーズのASTと統計情報に基づいて作成されます。第`compile`フェーズには、論理最適化と物理最適化が含まれます。論理最適化では、リレーショナル代数に基づく列プルーニングなどのルールに従ってクエリプランを最適化します。物理最適化では、コストベースオプティマイザによって統計情報に基づいて実行計画のコストを推定し、最もコストが低い物理実行計画を選択します。
+- `compile` : 実行計画は、`parse`フェーズのASTと統計情報に基づいて作成されます。`compile`フェーズには、論理最適化と物理最適化が含まれます。論理最適化では、リレーショナル代数に基づく列プルーニングなどのルールに従ってクエリプランを最適化します。物理最適化では、コストベースオプティマイザによって統計情報に基づいて実行計画のコストを推定し、最もコストが低い物理実行計画を選択します。
- `execute` : SQL文の実行にかかる時間。TiDBはまず、グローバルに一意なタイムスタンプTSOを待機します。 `execute` 、エグゼキュータは実行プラン内のオペレータのキー範囲に基づいてTiKV APIリクエストを構築し、TiKVに配布します。2時間には、TSOの待機時間、KVリクエスト時間、およびTiDBエグゼキュータによるデータ処理時間が含まれます。
アプリケーションが`query`または`StmtExecute` MySQL コマンド インターフェイスのみを使用する場合は、次の式を使用して平均レイテンシーのボトルネックを特定できます。
avg Query Duration = avg Get Token + avg Parse Duration + avg Compile Duration + avg Execute Duration
-通常、 `query`レイテンシーのうち、第`execute`フェーズが大部分を占めます。ただし、以下の場合には、第`parse`フェーズと`compile`フェーズも大きな割合を占めることがあります。
+通常、 `query`レイテンシーのうち、`execute`フェーズが大部分を占めます。ただし、以下の場合には、`parse`フェーズと`compile`フェーズも大きな割合を占めることがあります。
- フェーズ`parse`での長いレイテンシー: たとえば、ステートメント`query`が長い場合、SQL テキストを解析するために多くの CPU が消費されます。
-- 第`compile`フェーズでの長いレイテンシー:準備されたプランキャッシュにヒットしない場合、TiDBはSQL実行ごとに実行プランをコンパイルする必要があります。第`compile`フェーズのレイテンシーは数ミリ秒から数十ミリ秒、あるいはそれ以上になる場合があります。準備されたプランキャッシュにヒットしない場合、第`compile`フェーズで論理的および物理的な最適化が行われ、CPUとメモリを大量に消費し、Goランタイム(TiDBは[`Go`](https://go.dev/)で記述されています)に負担がかかり、他のTiDBコンポーネントのパフォーマンスに影響を与えます。準備されたプランキャッシュは、TiDBにおけるOLTPワークロードの効率的な処理に重要です。
+- `compile`フェーズでの長いレイテンシー:プリペアドプランキャッシュにヒットしない場合、TiDBはSQL実行ごとに実行プランをコンパイルする必要があります。`compile`フェーズのレイテンシーは数ミリ秒から数十ミリ秒、あるいはそれ以上になる場合があります。プリペアドプランキャッシュにヒットしない場合、`compile`フェーズで論理的および物理的な最適化が行われ、CPUとメモリを大量に消費し、Goランタイム(TiDBは[`Go`](https://go.dev/)で記述されています)に負担がかかり、他のTiDBコンポーネントのパフォーマンスに影響を与えます。プリペアドプランキャッシュは、TiDBにおけるOLTPワークロードの効率的な処理に重要です。
**例1: `compile`フェーズにおけるデータベースのボトルネック**

-上の図では、 `execute` `parse`の平均時間はそれぞれ 17.1 `compile`秒、729 マイクロ秒、681 マイクロ秒です。フェーズ`compile`レイテンシーが高いのは、アプリケーションが`query`コマンドインターフェースを使用しており、準備済みプランキャッシュを使用できないためです。
+上の図では、 `execute` `parse`の平均時間はそれぞれ 17.1 `compile`秒、729 マイクロ秒、681 マイクロ秒です。フェーズ`compile`レイテンシーが高いのは、アプリケーションが`query`コマンドインターフェースを使用しており、プリペアドプランキャッシュを使用できないためです。
**例2: `execute`フェーズにおけるデータベースのボトルネック**

-このTPC-Cワークロードでは、 `parse` 、 `compile` 、第`execute`フェーズの平均時間はそれぞれ7.39マイクロ秒、38.1マイクロ秒、12.8ミリ秒です。第`execute`フェーズが第`query`レイテンシーのレイテンシのボトルネックとなっています。
+このTPC-Cワークロードでは、 `parse` 、 `compile` 、`execute`フェーズの平均時間はそれぞれ7.39マイクロ秒、38.1マイクロ秒、12.8ミリ秒です。`execute`フェーズが`query`レイテンシーのレイテンシのボトルネックとなっています。
#### KVおよびTSOリクエスト期間 {#kv-and-tso-request-duration}
diff --git a/performance-tuning-practices.md b/performance-tuning-practices.md
index 4cf3b73d8e62a..a104543980128 100644
--- a/performance-tuning-practices.md
+++ b/performance-tuning-practices.md
@@ -408,7 +408,7 @@ QPSは34.9kから40.9kに増加し、KVリクエストタイプはフェーズ`e
| クエリ期間 | 479μs | 1120μs | 528μs | 426μs | 690μs | 533μs | 313μs | -38% | -41% |
| QPS | 56.3k | 24.2k | 19.7k | 22.1k | 30.9k | 34.9k | 40.9k | +28% | +108% |
-これらのシナリオでは、シナリオ 2 はアプリケーションがクエリ インターフェイスを使用する一般的なシナリオであり、シナリオ 5 はアプリケーションが準備済みステートメント インターフェイスを使用する理想的なシナリオです。
+これらのシナリオでは、シナリオ 2 はアプリケーションがクエリ インターフェイスを使用する一般的なシナリオであり、シナリオ 5 はアプリケーションがプリペアドステートメント インターフェイスを使用する理想的なシナリオです。
- シナリオ 5 とシナリオ 2 を比較すると、 Javaアプリケーション開発のベスト プラクティスを使用し、クライアント側で Prepared Statement オブジェクトをキャッシュすることで、各 SQL ステートメントで実行プラン キャッシュをヒットするために必要なコマンドとデータベース操作が 1 つだけになり、クエリのレイテンシーが 38% 短縮され、QPS が 28% 増加し、TiDB の平均 CPU 使用率が 936% から 577% に低下していることがわかります。
- シナリオ 7 とシナリオ 3 を比較すると、シナリオ 5 に RC 読み取りや小さなテーブル キャッシュなどの最新の TiDB 最適化機能を追加すると、レイテンシーが41% 削減され、QPS が 108% 増加し、平均 TiDB CPU 使用率が 936% から 478% に低下することがわかります。
diff --git a/releases/release-3.0.1.md b/releases/release-3.0.1.md
index cb0551ed9bf1f..c63852d5bda86 100644
--- a/releases/release-3.0.1.md
+++ b/releases/release-3.0.1.md
@@ -19,7 +19,7 @@ TiDB Ansible バージョン: 3.0.1
- プラグイン`ADMIN PLUGINS DISABLE` `ADMIN PLUGINS ENABLE`ステートメントを追加する[#11157](https://github.com/pingcap/tidb/pull/11157)
- 監査プラグイン[#11013](https://github.com/pingcap/tidb/pull/11013)にセッション接続情報を追加する
- リージョン分割期間中のデフォルトの動作を変更し、PD がスケジュール[#11166](https://github.com/pingcap/tidb/pull/11166)を完了するまで待機します。
-- 一部のケースで誤った結果を回避するために、ウィンドウ関数がプラン準備キャッシュにキャッシュされることを禁止します[#11048](https://github.com/pingcap/tidb/pull/11048)
+- 一部のケースで誤った結果を回避するために、ウィンドウ関数がプリペアドプランキャッシュにキャッシュされることを禁止します[#11048](https://github.com/pingcap/tidb/pull/11048)
- `ALTER`文が保存された生成列の定義を変更することを禁止する[#11068](https://github.com/pingcap/tidb/pull/11068)
- 仮想生成列を保存生成列に変更することを禁止する[#11068](https://github.com/pingcap/tidb/pull/11068)
- インデックス[#11068](https://github.com/pingcap/tidb/pull/11068)で生成された列式の変更を禁止する
diff --git a/releases/release-5.0.2.md b/releases/release-5.0.2.md
index e87932146d3bf..05853491be91d 100644
--- a/releases/release-5.0.2.md
+++ b/releases/release-5.0.2.md
@@ -65,7 +65,7 @@ TiDB バージョン: 5.0.2
- TiDB
- 一部のケースでプレフィックスインデックスとインデックス結合を使用することで発生するpanic問題を修正[#24547](https://github.com/pingcap/tidb/issues/24547) [#24716](https://github.com/pingcap/tidb/issues/24716) [#24717](https://github.com/pingcap/tidb/issues/24717)
- - `point get`の準備されたプランキャッシュがトランザクション[#24741](https://github.com/pingcap/tidb/issues/24741)の`point get`文によって誤って使用される問題を修正しました。
+ - `point get`のプリペアドプランキャッシュがトランザクションの`point get`文によって誤って使用される問題を修正しました[#24741](https://github.com/pingcap/tidb/issues/24741)。
- 照合順序が`ascii_bin`または`latin1_bin`場合に間違ったプレフィックスインデックス値を書き込む問題を修正しました[#24569](https://github.com/pingcap/tidb/issues/24569)
- GCワーカー[#24591](https://github.com/pingcap/tidb/issues/24591)によって進行中のトランザクションが中断される可能性がある問題を修正
- `new-collation`が有効で`new-row-format`無効の場合、クラスター化インデックスでポイントクエリが間違って実行される可能性があるバグを修正しました[#24541](https://github.com/pingcap/tidb/issues/24541)
diff --git a/releases/release-5.1.0.md b/releases/release-5.1.0.md
index f960580330cca..698979635ef1b 100644
--- a/releases/release-5.1.0.md
+++ b/releases/release-5.1.0.md
@@ -272,7 +272,7 @@ TiDBは、実行ステータスと失敗ステータスを含む、TiDBクラス
- ユーザーが`INSERT`操作を実行するには、テーブルに対する`DELETE`権限と`REPLACE`権限の両方が必要になりました [#24070](https://github.com/pingcap/tidb/pull/24070)
- バイナリとバイトの比較ミスによって発生した誤った`TableDual`プランを修正 [#23846](https://github.com/pingcap/tidb/issues/23846)
- プレフィックスインデックスとインデックス結合の使用によって発生するpanic問題を修正[#24547](https://github.com/pingcap/tidb/issues/24547) [#24716](https://github.com/pingcap/tidb/issues/24716) [#24717](https://github.com/pingcap/tidb/issues/24717)
- - トランザクションにおいて、 `point get` ステートメントが `point get` の準備済みプランキャッシュを誤って使用する問題を修正します。 [#24741](https://github.com/pingcap/tidb/issues/24741)
+ - トランザクションにおいて、 `point get` ステートメントが `point get` のプリペアドプランキャッシュを誤って使用する問題を修正します。 [#24741](https://github.com/pingcap/tidb/issues/24741)
- 照合順序が`ascii_bin`または`latin1_bin`の場合に、誤ったプレフィックスインデックス値が書き込まれる問題を修正しました [#24569](https://github.com/pingcap/tidb/issues/24569)
- 進行中のトランザクションがGCワーカーによって中断される可能性がある問題を修正しました [#24591](https://github.com/pingcap/tidb/issues/24591)
- `new-collation`が有効で`new-row-format`が無効になっている場合に、クラスター化インデックスでポイントクエリが正しく実行されない可能性があるバグを修正しました [#24541](https://github.com/pingcap/tidb/issues/24541)
diff --git a/releases/release-5.4.3.md b/releases/release-5.4.3.md
index 33059120cff82..19c10d90ea4bb 100644
--- a/releases/release-5.4.3.md
+++ b/releases/release-5.4.3.md
@@ -48,7 +48,7 @@ TiDB バージョン: 5.4.3
- UPDATE文が場合によっては投影を誤って削除し、 `Can't find column`エラー[#37568](https://github.com/pingcap/tidb/issues/37568)が発生する問題を修正しました。
- パーティションテーブルがインデックスを完全に使用してデータをスキャンできない場合がある問題を修正[#33966](https://github.com/pingcap/tidb/issues/33966)
- 特定のシナリオ[#37187](https://github.com/pingcap/tidb/issues/37187)予期しないエラーが発生する可能性がある問題を修正しました`EXECUTE`
- - 準備済みプランキャッシュが有効になっている`BIT`タイプのインデックスを使用すると、TiDBが間違った結果を返す可能性がある問題を修正しました[#33067](https://github.com/pingcap/tidb/issues/33067)
+ - プリペアドプランキャッシュが有効になっている`BIT`タイプのインデックスを使用すると、TiDBが間違った結果を返す可能性がある問題を修正しました[#33067](https://github.com/pingcap/tidb/issues/33067)
- TiKV
diff --git a/releases/release-6.0.0-dmr.md b/releases/release-6.0.0-dmr.md
index 0c2c556c8335a..8a45b7aec7361 100644
--- a/releases/release-6.0.0-dmr.md
+++ b/releases/release-6.0.0-dmr.md
@@ -21,7 +21,7 @@ TiDB バージョン: 6.0.0-DMR
- クラスターのパフォーマンス データを常時収集する継続的なプロファイリングをサポートし、技術専門家の MTTR を短縮します。
- ホットスポットの小さなテーブルをメモリにキャッシュすることで、アクセス パフォーマンスが大幅に向上し、スループットが向上し、アクセスレイテンシーが短縮されます。
- インメモリの悲観的ロックを最適化します。悲観的ロックによって引き起こされるパフォーマンスのボトルネックに対して、悲観的ロックのメモリ最適化により、レイテンシーを10%削減し、QPSを10%向上させることができます。
-- 実行プランを共有するように準備されたステートメントを強化することで、CPU リソースの消費が軽減され、SQL 実行の効率が向上します。
+- 実行プランを共有するようにプリペアドステートメントを強化することで、CPU リソースの消費が軽減され、SQL 実行の効率が向上します。
- より多くの式のプッシュダウンとエラスティック スレッド プールの一般提供 (GA) をサポートすることで、MPP エンジンのコンピューティング パフォーマンスが向上します。
- 多数の移行タスクの管理を容易にするためにDM WebUI を追加します。
- 大規模クラスターでデータを複製する際の TiCDC の安定性と効率性が向上しました。TiCDC は現在、100,000 個のテーブルの同時複製をサポートしています。
@@ -104,9 +104,9 @@ TiDB v6.0.0 は DMR であり、そのバージョンは 6.0.0-DMR です。
[ユーザードキュメント](/transaction-isolation-levels.md#read-committed-isolation-level) [#33159](https://github.com/pingcap/tidb/issues/33159)
-- 実行プランを共有するために準備されたステートメントを強化する
+- 実行プランを共有するためにプリペアドステートメントを強化する
- SQL 実行プランを再利用すると、SQL 文の解析時間を効果的に短縮し、CPU リソースの消費を抑え、SQL 実行効率を向上させることができます。SQL チューニングの重要な方法の 1 つは、SQL 実行プランを効果的に再利用することです。TiDB は、準備済みステートメントと実行プランの共有をサポートしています。ただし、準備済みステートメントが閉じられると、TiDB は対応するプラン キャッシュを自動的にクリアします。その後、TiDB は繰り返される SQL 文を不必要に解析し、実行効率に影響を与える可能性があります。v6.0.0 以降、TiDB は`tidb_ignore_prepared_cache_close_stmt`パラメータ (デフォルトでは無効) によって`COM_STMT_CLOSE`のコマンドを無視するかどうかを制御できるようになりました。パラメータを有効にすると、TiDB は準備済みステートメントを閉じるコマンドを無視し、実行プランをキャッシュに保持するため、実行プランの再利用率が向上します。
+ SQL 実行プランを再利用すると、SQL 文の解析時間を効果的に短縮し、CPU リソースの消費を抑え、SQL 実行効率を向上させることができます。SQL チューニングの重要な方法の 1 つは、SQL 実行プランを効果的に再利用することです。TiDB は、プリペアドステートメントと実行プランの共有をサポートしています。ただし、プリペアドステートメントが閉じられると、TiDB は対応するプラン キャッシュを自動的にクリアします。その後、TiDB は繰り返される SQL 文を不必要に解析し、実行効率に影響を与える可能性があります。v6.0.0 以降、TiDB は`tidb_ignore_prepared_cache_close_stmt`パラメータ (デフォルトでは無効) によって`COM_STMT_CLOSE`のコマンドを無視するかどうかを制御できるようになりました。パラメータを有効にすると、TiDB はプリペアドステートメントを閉じるコマンドを無視し、実行プランをキャッシュに保持するため、実行プランの再利用率が向上します。
[ユーザードキュメント](/sql-prepared-plan-cache.md#ignore-the-com_stmt_close-command-and-the-deallocate-prepare-statement) [#31056](https://github.com/pingcap/tidb/issues/31056)
@@ -287,7 +287,7 @@ TiDB v6.0.0 は DMR であり、そのバージョンは 6.0.0-DMR です。
### システム変数 {#system-variables}
-| 変数名 | タイプを変更 | 説明 |
|---|---|---|
placement_checks | 削除済み | DDL ステートメントがSQL の配置ルールで指定された配置ルールを検証するかどうかを制御します。tidb_placement_mode に置き換えられtidb_placement_modeた。 |
tidb_enable_alter_placement | 削除済み | SQL で配置ルールを有効にするかどうかを制御します。 |
tidb_mem_quota_hashjointidb_mem_quota_indexlookupjointidb_mem_quota_indexlookupreadertidb_mem_quota_mergejointidb_mem_quota_sorttidb_mem_quota_topn | 削除済み | v5.0以降、これらの変数はtidb_mem_quota_queryに置き換えられ、システム変数ドキュメントから削除されました。互換性を確保するため、これらの変数はソースコードに残されていました。TiDB 6.0.0以降、これらの変数はコードからも削除されています。 |
tidb_enable_mutation_checker | 新しく追加された | ミューテーションチェッカーを有効にするかどうかを制御します。デフォルト値はONです。v6.0.0より前のバージョンからアップグレードする既存のクラスターの場合、ミューテーションチェッカーはデフォルトで無効になっています。 |
tidb_ignore_prepared_cache_close_stmt | 新しく追加された | 準備済みステートメントを閉じるコマンドを無視するかどうかを制御します。デフォルト値はOFFです。 |
tidb_mem_quota_binding_cache | 新しく追加された | キャッシュ保持バインディングのメモリ使用量のしきい値を設定します。デフォルト値は67108864 (64 MiB)です。 |
tidb_placement_mode | 新しく追加された | DDL文がSQLの配置ルールで指定された配置ルールを無視するかどうかを制御します。デフォルト値はstrictで、DDL文は配置ルールを無視しません。 |
tidb_rc_read_check_ts | 新しく追加された |
|
tidb_sysdate_is_now | 新しく追加された | SYSDATE関数をNOW関数に置き換えるかどうかを制御します。この設定項目は、MySQLオプションsysdate-is-nowと同じ効果があります。デフォルト値はOFFです。 |
tidb_table_cache_lease | 新しく追加された | テーブルキャッシュのリース時間を秒単位で制御します。デフォルト値は3です。 |
tidb_top_sql_max_meta_count | 新しく追加された | Top SQLによって1分間に収集されるSQL文タイプの最大数を制御します。デフォルト値は5000です。 |
tidb_top_sql_max_time_series_count | 新しく追加された | 負荷に最も寄与するSQL文(つまり、上位N文)を1分あたりにTop SQLで記録できる回数を制御します。デフォルト値は100です。 |
tidb_txn_assertion_level | 新しく追加された | アサーションレベルを制御します。アサーションは、データとインデックス間の整合性チェックであり、トランザクションのコミットプロセスにおいて、書き込まれるキーが存在するかどうかを確認します。デフォルトでは、ほとんどのチェック項目が有効になっており、パフォーマンスへの影響はほとんどありません。v6.0.0より前のバージョンからアップグレードした既存のクラスターでは、このチェックはデフォルトで無効になっています。 |
| 変数名 | タイプを変更 | 説明 |
|---|---|---|
placement_checks | 削除済み | DDL ステートメントがSQL の配置ルールで指定された配置ルールを検証するかどうかを制御します。tidb_placement_mode に置き換えられtidb_placement_modeた。 |
tidb_enable_alter_placement | 削除済み | SQL で配置ルールを有効にするかどうかを制御します。 |
tidb_mem_quota_hashjointidb_mem_quota_indexlookupjointidb_mem_quota_indexlookupreadertidb_mem_quota_mergejointidb_mem_quota_sorttidb_mem_quota_topn | 削除済み | v5.0以降、これらの変数はtidb_mem_quota_queryに置き換えられ、システム変数ドキュメントから削除されました。互換性を確保するため、これらの変数はソースコードに残されていました。TiDB 6.0.0以降、これらの変数はコードからも削除されています。 |
tidb_enable_mutation_checker | 新しく追加された | ミューテーションチェッカーを有効にするかどうかを制御します。デフォルト値はONです。v6.0.0より前のバージョンからアップグレードする既存のクラスターの場合、ミューテーションチェッカーはデフォルトで無効になっています。 |
tidb_ignore_prepared_cache_close_stmt | 新しく追加された | プリペアドステートメントを閉じるコマンドを無視するかどうかを制御します。デフォルト値はOFFです。 |
tidb_mem_quota_binding_cache | 新しく追加された | キャッシュ保持バインディングのメモリ使用量のしきい値を設定します。デフォルト値は67108864 (64 MiB)です。 |
tidb_placement_mode | 新しく追加された | DDL文がSQLの配置ルールで指定された配置ルールを無視するかどうかを制御します。デフォルト値はstrictで、DDL文は配置ルールを無視しません。 |
tidb_rc_read_check_ts | 新しく追加された |
|
tidb_sysdate_is_now | 新しく追加された | SYSDATE関数をNOW関数に置き換えるかどうかを制御します。この設定項目は、MySQLオプションsysdate-is-nowと同じ効果があります。デフォルト値はOFFです。 |
tidb_table_cache_lease | 新しく追加された | テーブルキャッシュのリース時間を秒単位で制御します。デフォルト値は3です。 |
tidb_top_sql_max_meta_count | 新しく追加された | Top SQLによって1分間に収集されるSQL文タイプの最大数を制御します。デフォルト値は5000です。 |
tidb_top_sql_max_time_series_count | 新しく追加された | 負荷に最も寄与するSQL文(つまり、上位N文)を1分あたりにTop SQLで記録できる回数を制御します。デフォルト値は100です。 |
tidb_txn_assertion_level | 新しく追加された | アサーションレベルを制御します。アサーションは、データとインデックス間の整合性チェックであり、トランザクションのコミットプロセスにおいて、書き込まれるキーが存在するかどうかを確認します。デフォルトでは、ほとんどのチェック項目が有効になっており、パフォーマンスへの影響はほとんどありません。v6.0.0より前のバージョンからアップグレードした既存のクラスターでは、このチェックはデフォルトで無効になっています。 |
| カテゴリ | 特徴 | 説明 |
|---|---|---|
| 拡張性とパフォーマンス | セッションレベルの未準備SQLプランキャッシュ(実験的) | セッションレベルでプランキャッシュを自動的に再利用することで、コンパイルを削減し、同じSQLパターンに対して事前に手動で準備ステートメントを設定することなくクエリ時間を短縮します。 |
| TiFlashは 、分散型ストレージおよびコンピューティングアーキテクチャとS3共有ストレージ(実験的)をサポートしています。 | TiFlashは、オプションとしてクラウドネイティブアーキテクチャを導入します。
| |
| 信頼性と可用性 | リソース制御機能強化(実験的) | リソースグループを使用して、1 つのクラスタ内のさまざまなアプリケーションやワークロードにリソースを割り当て、分離することをサポートします。今回のリリースでは、TiDB はさまざまなリソースバインディングモード (ユーザー、セッション、ステートメントレベル) とユーザー定義の優先度をサポートします。さらに、コマンドを使用してリソースのキャリブレーション (リソース全体の量の見積もり) を実行することもできます。 |
| TiFlashはディスクへのスピルをサポートしています | TiFlashは、集計、ソート、ハッシュ結合などのデータ集約型操作におけるメモリ不足(OOM)を軽減するために、中間結果をディスクに書き出す機能をサポートしています。 | |
| SQL | 行レベルTTL (GA) | 一定期間経過したデータを自動的に削除することで、データベースサイズの管理をサポートし、パフォーマンスを向上させます。 |
LIST / RANGEパーティションを再編成する | REORGANIZE PARTITIONステートメントは、隣接するパーティションをマージしたり、1 つのパーティションを複数のパーティションに分割したりするために使用でき、パーティション化されたテーブルの使いやすさを向上させます。 | |
| データベースの運用と可観測性 | TiDBはLOAD DATAステートメントの機能を拡張します(実験的)。 | TiDBは、S3/GCSからのデータインポートをサポートするなど、 LOAD DATA SQLステートメントの機能を拡張します。 |
| TiCDCはオブジェクトストレージシンク(GA)をサポートしています | TiCDCは、Amazon S3、GCS、Azure Blob Storage、NFSなどのオブジェクトストレージサービスへの行変更イベントの複製をサポートしています。 |
| カテゴリ | 特徴 | 説明 |
|---|---|---|
| 拡張性とパフォーマンス | セッションレベルの非プリペアドSQLプランキャッシュ(実験的) | セッションレベルでプランキャッシュを自動的に再利用することで、コンパイルを削減し、同じSQLパターンに対して事前に手動でプリペアドステートメントを設定することなくクエリ時間を短縮します。 |
| TiFlashは 、分散型ストレージおよびコンピューティングアーキテクチャとS3共有ストレージ(実験的)をサポートしています。 | TiFlashは、オプションとしてクラウドネイティブアーキテクチャを導入します。
| |
| 信頼性と可用性 | リソース制御機能強化(実験的) | リソースグループを使用して、1 つのクラスタ内のさまざまなアプリケーションやワークロードにリソースを割り当て、分離することをサポートします。今回のリリースでは、TiDB はさまざまなリソースバインディングモード (ユーザー、セッション、ステートメントレベル) とユーザー定義の優先度をサポートします。さらに、コマンドを使用してリソースのキャリブレーション (リソース全体の量の見積もり) を実行することもできます。 |
| TiFlashはディスクへのスピルをサポートしています | TiFlashは、集計、ソート、ハッシュ結合などのデータ集約型操作におけるメモリ不足(OOM)を軽減するために、中間結果をディスクに書き出す機能をサポートしています。 | |
| SQL | 行レベルTTL (GA) | 一定期間経過したデータを自動的に削除することで、データベースサイズの管理をサポートし、パフォーマンスを向上させます。 |
LIST / RANGEパーティションを再編成する | REORGANIZE PARTITIONステートメントは、隣接するパーティションをマージしたり、1 つのパーティションを複数のパーティションに分割したりするために使用でき、パーティション化されたテーブルの使いやすさを向上させます。 | |
| データベースの運用と可観測性 | TiDBはLOAD DATAステートメントの機能を拡張します(実験的)。 | TiDBは、S3/GCSからのデータインポートをサポートするなど、 LOAD DATA SQLステートメントの機能を拡張します。 |
| TiCDCはオブジェクトストレージシンク(GA)をサポートしています | TiCDCは、Amazon S3、GCS、Azure Blob Storage、NFSなどのオブジェクトストレージサービスへの行変更イベントの複製をサポートしています。 |