TiDB 6.2.0 リリースノート
発売日: 2022年8月23日
TiDB バージョン: 6.2.0-DMR
注記:
TiDB 6.2.0-DMR のドキュメントはアーカイブ済みです。PingCAP では、TiDB データベースの最新のLTSバージョン使用することを推奨しています。
v6.2.0-DMR の主な新機能と改善点は次のとおりです。
- TiDB ダッシュボードは視覚的な実行計画サポートしており、実行プランをより直感的に表示できます。
- パフォーマンス分析とチューニングをより効率的にするために、TiDB ダッシュボードに監視ページ追加します。
- TiDB 機能のビューをロックでは、楽観的トランザクションの待機情報の表示がサポートされており、ロック競合の迅速な特定が容易になります。
- TiFlash は新しいバージョンのstorage形式サポートし、安定性とパフォーマンスを向上させます。
- きめ細かなシャッフル機能は、複数のスレッドでウィンドウ関数を並列実行することを可能にします。
- 新しい同時実行 DDL フレームワーク: ブロックされる DDL ステートメントが少なくなり、実行効率が向上します。
- TiKV はCPU使用率を自動的に調整するサポートしているため、安定した効率的なデータベース操作が保証されます。
- ポイントインタイムリカバリ (PITR)は、過去の任意の時点から TiDB クラスターのスナップショットを新しいクラスターに復元するために導入されました。
- TiDB Lightning は、クラスター レベルではなく、物理インポート モードでテーブルレベルでスケジュールを一時停止するサポートします。
- BR はユーザーと権限のデータの復元サポートしており、バックアップと復元がよりスムーズになります。
- TiCDC は、 特定の種類のDDLイベントをフィルタリングするサポートすることで、より多くのデータ複製シナリオを実現します。
SAVEPOINT
メカニズムがサポートされており、トランザクション内のロールバック ポイントを柔軟に制御できます。- TiDB は1 つの
ALTER TABLE
ステートメントだけで複数の列またはインデックスを追加、削除、および変更するサポートします。 - クラスタ間RawKVレプリケーションサポートされるようになりました。
新機能
構文
物理データ圧縮機能はGAです
TiFlashバックエンドは、特定の条件に基づいて物理データを自動的に圧縮し、無駄なデータのバックログを削減し、データstorage構造を最適化します。
多くの場合、データ圧縮が自動的にトリガーされる前に、 TiFlashテーブルに一定量の無駄なデータがあります。この機能を使用すると、適切なタイミングを選択して SQL ステートメントを手動で実行し、 TiFlash内の物理データを即座に圧縮できるため、storage領域の使用量が削減され、クエリのパフォーマンスが向上します。この機能は TiDB v6.1 では実験的であり、現在 TiDB v6.2.0 で一般提供 (GA) されています。
可観測性
TiDBダッシュボードをPDから分離する
TiDB ダッシュボードは PD から監視ノードに移動されました。これにより、TiDB ダッシュボードの PD への影響が軽減され、PD がより安定します。
@ ホークソンジー
TiDBダッシュボードに監視ページが追加されました
新しい「監視」ページには、パフォーマンス チューニングに必要な主要な指標が表示され、それに基づいてデータベース時間によるパフォーマンスチューニングを参照してパフォーマンスを分析およびチューニングできます。
具体的には、ユーザー応答時間とデータベース時間をグローバルかつトップダウンの観点から分析し、ユーザー応答時間のボトルネックの原因がデータベースの問題であるかどうかを確認できます。ボトルネックの原因がデータベースにある場合は、データベース時間の概要と SQLレイテンシーの内訳を使用してボトルネックを特定し、パフォーマンスを調整できます。
TiDBダッシュボードは視覚的な実行計画をサポートします
TiDB ダッシュボードは、SQL ステートメントと監視ページを通じて、視覚的な実行プランと基本的な診断サービスを提供します。この機能は、クエリ プランの各ステップを識別するための新しい視点を提供します。そのため、クエリ実行プランのすべてのトレースをより直感的に把握できます。
この機能は、複雑で大規模なクエリの実行方法を学習する場合に特に便利です。一方、TiDB ダッシュボードは、各クエリ実行プランの実行の詳細を自動的に分析し、潜在的な問題を特定し、特定のクエリ プランの実行に必要な時間を短縮するための最適化の提案を提供します。
ロックビューは、楽観的トランザクションの待機情報の表示をサポートします。
ロック競合が多すぎると、重大なパフォーマンスの問題が発生する可能性があり、ロック競合を検出することは、このような問題のトラブルシューティングに必要な方法です。v6.2.0 より前の TiDB では、
INFORMATION_SCHEMA.DATA_LOCK_WAITS
システム ビューを使用してロック競合関係を表示できましたが、楽観的トランザクションの待機情報は表示されませんでした。TiDB v6.2.0 ではDATA_LOCK_WAITS
ビューが拡張され、悲観的ロックによってブロックされた楽観的トランザクションがビューにリストされます。この機能により、ユーザーはロック競合を迅速に検出でき、アプリケーションを改善するための基盤が提供されるため、ロック競合の頻度が減り、全体的なパフォーマンスが向上します。
パフォーマンス
LEADING
オプティマイザヒントを改善して外部結合順序をサポートするv6.1.0 では、テーブルの結合順序を変更するためにオプティマイザ ヒント
LEADING
が導入されました。ただし、このヒントは外部結合を含むクエリには適用できませんでした。詳細については、LEADING
文書参照してください。v6.2.0 では、TiDB はこの制限を解除しました。外部結合を含むクエリでは、このヒントを使用してテーブルの結合順序を指定し、SQL 実行パフォーマンスを向上させ、実行プランの突然の変更を回避できるようになりました。EXISTS
のクエリのパフォーマンスを向上させるために新しいオプティマイザSEMI_JOIN_REWRITE
を追加しますシナリオによっては、
EXISTS
のクエリでは最適な実行プランを作成できず、実行に時間がかかりすぎる可能性があります。v6.2.0 では、オプティマイザーがこのようなシナリオの書き換えルールを追加し、クエリでSEMI_JOIN_REWRITE
使用してオプティマイザーに強制的にクエリを書き換えさせ、クエリのパフォーマンスを向上させることができます。分析クエリのパフォーマンスを向上させるために、新しいオプティマイザヒント
MERGE
を追加します。共通テーブル式 (CTE) は、クエリ ロジックを簡素化する効果的な方法です。複雑なクエリの作成に広く使用されています。v6.2.0 より前のバージョンでは、 TiFlash環境では CTE を自動的に展開することができず、MPP の実行効率がある程度制限されていました。v6.2.0 では、MySQL 互換のオプティマイザー ヒント
MERGE
が導入されました。このヒントにより、オプティマイザーは CTE インラインを展開できるようになり、CTE クエリ結果のコンシューマーはTiFlashでクエリを同時に実行できるようになり、一部の分析クエリのパフォーマンスが向上しました。いくつかの分析シナリオにおける集計操作のパフォーマンスを最適化します
OLAP シナリオでTiFlash を使用して列の集計操作を実行する場合、集計列の不均一な分布により深刻なデータ スキューが存在し、集計列に多くの異なる値がある場合、列に対する
COUNT(DISTINCT)
のクエリの実行効率は低くなります。v6.2.0 では、新しい書き換えルールが導入され、1 つの列に対するCOUNT(DISTINCT)
のクエリのパフォーマンスが向上しました。TiDBは同時DDL操作をサポート
TiDB v6.2.0 では、新しい同時実行 DDL フレームワークが導入され、異なるテーブル オブジェクトで DDL ステートメントを同時に実行できるようになり、他のテーブルでの DDL 操作によって DDL 操作がブロックされる問題が修正されました。さらに、TiDB は、複数のテーブルにインデックスを追加したり、列の型を変更したりするときに、同時実行 DDL 実行をサポートします。これにより、DDL 実行の効率が向上します。
オプティマイザーは文字列マッチングの推定を強化します
文字列マッチングのシナリオでは、オプティマイザが行数を正確に推定できない場合、最適な実行プランの生成に影響します。たとえば、条件が
like '%xyz'
場合や、正規表現regex ()
使用している場合などです。このようなシナリオでの推定精度を向上させるために、TiDB v6.2.0 では推定方法が強化されています。新しい方法では、統計の TopN 情報とシステム変数を組み合わせて精度を向上させ、一致選択性を手動で変更できるようにすることで、SQL パフォーマンスが向上します。TiFlashにプッシュダウンされたウィンドウ関数は複数のスレッドで実行できます
細粒度シャッフル機能を有効にすると、ウィンドウ関数を単一のスレッドではなく複数のスレッドで実行できるようになります。この機能により、ユーザーの動作を変えずにクエリの応答時間が大幅に短縮されます。変数の値を調整することで、シャッフルの粒度を制御できます。
TiFlashは新しいバージョンのstorageフォーマットをサポートしています
新しいstorage形式により、同時実行性が高く、ワークロードが重いシナリオで GC によって発生する CPU 使用率の上昇が軽減されます。これにより、バックグラウンド タスクの IO トラフィックが大幅に削減され、同時実行性が高く、ワークロードが重い状況でも安定性が向上します。同時に、スペースの増大とディスクの無駄も大幅に削減されます。
TiDB v6.2.0 では、データはデフォルトで新しいstorage形式で保存されます。TiFlashを以前のバージョンから v6.2.0 にアップグレードする場合、以前のバージョンのTiFlashでは新しいstorage形式を認識できないため、 TiFlashでインプレース ダウングレードを実行できないことに注意してください。
TiFlash のアップグレードの詳細については、 TiFlashアップグレード ガイド参照してください。
ユーザードキュメント #3594 @ ジェイソン・ファン @ リデズ @ ジアキゾ
TiFlash は、複数の同時実行シナリオでのデータスキャン パフォーマンスを最適化します (実験的)
TiFlash は、同じデータの読み取り操作をマージすることで、同じデータの重複読み取りを減らし、複数の同時タスクの場合にリソース オーバーヘッドを最適化して、データ スキャンのパフォーマンスを向上させます。これにより、同じデータが複数の同時タスクに関係している場合、各タスクで同じデータを個別に読み取る必要がある状況や、同じデータが同時に複数回読み取られる状況を回避できます。
TiFlash は、データの一貫性を犠牲にして読み取りと書き込みの速度を向上させるために、データスキャン用の FastScan を追加しました (実験的)
TiDB は、v6.2.0 で FastScan を導入しました。これは、一貫性チェックのスキップをサポートし、速度を大幅に向上させます。FastScan は、オフライン分析タスクなど、データの高精度と一貫性を必要としないシナリオに適しています。以前は、データの一貫性を確保するために、 TiFlash はデータ スキャン プロセス中にデータ一貫性チェックを実行し、複数の異なるバージョンから必要なデータを見つける必要がありました。
以前のバージョンから TiDB v6.2.0 にアップグレードすると、データの一貫性を確保するために、すべてのテーブルで FastScan がデフォルトで有効になりません。各テーブルに対して個別に FastScan を有効にすることができます。TiDB v6.2.0 でテーブルが FastScan に設定されている場合、下位バージョンにダウングレードすると無効になりますが、通常のデータ読み取りには影響しません。この場合、強力な一貫性読み取りに相当します。
安定性
TiKV は CPU 使用率の自動調整をサポートします (実験的)
データベースには通常、内部操作を実行するためのバックグラウンド プロセスがあります。統計情報を収集することで、パフォーマンスの問題を特定し、より適切な実行プランを生成し、データベースの安定性とパフォーマンスを向上させることができます。ただし、より効率的に情報を収集する方法、日常的な使用に影響を与えずにバックグラウンド操作とフォアグラウンド操作のリソース オーバーヘッドのバランスをとる方法は、常にデータベース業界の悩みの種となっています。
v6.2.0 以降、TiDB は TiKV 構成ファイルを使用してバックグラウンド リクエストの CPU 使用率を設定することをサポートし、これにより、TiKV での統計の自動収集などのバックグラウンド操作の CPU 使用率を制限し、極端なケースでバックグラウンド操作によるユーザー操作のリソースのプリエンプションを回避します。これにより、データベースの操作が安定して効率的になります。
同時に、TiDB は CPU 使用率の自動調整もサポートしています。その後、TiKV はインスタンスの CPU 使用率に応じて、バックグラウンド リクエストによって占有される CPU リソースを適応的に調整します。この機能はデフォルトでは無効になっています。
使いやすさ
TiKVはコマンドラインフラグを使用して詳細な構成情報の一覧表示をサポートします
TiKV 構成ファイルを使用して、TiKV インスタンスを管理できます。ただし、長期間実行され、異なるユーザーによって管理されているインスタンスの場合、どの構成項目が変更されたか、デフォルト値が何であるかを把握することは困難です。これにより、クラスターのアップグレードやデータの移行時に混乱が生じる可能性があります。TiDB v6.2.0 以降、tikv-server は、すべての TiKV 構成項目のデフォルト値と現在の値を一覧表示する新しいコマンドライン フラグ
—-config-info
をサポートし、ユーザーが TiKV プロセスの起動パラメータをすばやく確認できるようにし、使いやすさを向上させます。
MySQL 互換性
TiDBは、
ALTER TABLE
つのステートメントで複数の列またはインデックスの変更をサポートします。v6.2.0 より前の TiDB では、単一の DDL 変更のみがサポートされていたため、異種データベースの移行時に互換性のない DDL 操作が発生し、複雑な DDL ステートメントを TiDB がサポートする複数の単純な DDL ステートメントに変更するには余分な労力がかかります。さらに、一部のユーザーは ORM フレームワークに依存して SQL でアセンブリを作成するため、SQL の非互換性が発生します。v6.2.0 以降、TiDB は単一の SQL ステートメントで複数のスキーマ オブジェクトの変更をサポートしており、ユーザーが SQL を実装するのに便利で、使いやすさが向上しています。
トランザクションでのセーブポイントの設定をサポート
トランザクションは、データベースがACIDプロパティを保証する一連の連続した操作の論理的な集合です。複雑なアプリケーション シナリオでは、トランザクションで多くの操作を管理する必要があり、場合によってはトランザクションで一部の操作をロールバックする必要があることがあります。「セーブポイント」は、トランザクションの内部実装のための名前を付けられるメカニズムです。このメカニズムを使用すると、トランザクション内のロールバック ポイントを柔軟に制御できるため、より複雑なトランザクションを管理し、さまざまなアプリケーションをより自由に設計できます。
データ移行
BRはユーザーと権限データの復元をサポートします
BR は、通常の復元を実行するときに、ユーザーと権限のデータの復元をサポートします。ユーザーと権限のデータを復元するために追加の復元プランは必要ありません。この機能を有効にするには、 BR を使用してデータを復元するときに
--with-sys-table
パラメータを指定します。ログとスナップショットのバックアップと復元に基づくポイントインタイムリカバリ(PITR)をサポート
PITR は、ログとスナップショットのバックアップと復元に基づいて実装されています。これにより、履歴の任意の時点でのクラスターのスナップショットを新しいクラスターに復元できます。この機能は、次のニーズを満たします。
- 災害復旧における RPO を 20 分未満に短縮します。
- たとえば、データをエラー イベント前の状態にロールバックするなどして、アプリケーションからの不正な書き込みのケースを処理します。
- 法令の要件を満たすために履歴データ監査を実行します。
この機能には使用制限があります。詳細については、ユーザードキュメントを参照してください。
DM は継続的なデータ検証をサポートします (実験的)
継続的なデータ検証は、データ移行中に上流のbinlogと下流に書き込まれたデータを継続的に比較するために使用されます。検証ツールは、不整合なデータや欠落したレコードなどのデータ例外を識別します。
この機能は、一般的な完全なデータ検証スキームにおける検証の遅れと過剰なリソース消費の問題を解決します。
Amazon S3バケットのリージョンを自動的に識別する
データ移行タスクは、Amazon S3 バケットのリージョンを自動的に識別できます。リージョンパラメータを明示的に渡す必要はありません。
TiDB Lightningのディスク クォータ設定のサポート (実験的)
TiDB Lightning が物理インポート モード (backend='local') でデータをインポートする場合、sorted-kv-dir にはソース データを格納するのに十分なスペースが必要です。ディスク スペースが不足すると、インポート タスクが失敗する可能性があります。新しい
disk_quota
構成を使用して、 TiDB Lightningが使用するディスク スペースの合計量を制限できるようになりました。これにより、sorted-kv-dir に十分なstorageスペースがない場合でも、インポート タスクを正常に完了できます。TiDB Lightningは物理インポートモードでの本番クラスタへのデータのインポートをサポートします
以前は、 TiDB Lightning (backend='local') の物理インポート モードは、ターゲット クラスターに大きな影響を与えていました。たとえば、移行中は PD グローバル スケジューリングが一時停止されます。そのため、以前の物理インポート モードは、初期データ インポートにのみ適しています。
TiDB Lightning は、既存の物理インポート モードを改良します。テーブルのスケジュールを一時停止できるようにすることで、インポートの影響がクラスター レベルからテーブル レベルまで軽減されます。つまり、インポートされていないテーブルを読み書きできます。
この機能は手動で構成する必要はありません。TiDB クラスターが v6.1.0 以降で、 TiDB Lightningが v6.2.0 以降の場合、新しい物理インポート モードが自動的に有効になります。
TiDB Lightningのユーザードキュメントリファクタリングして、構造をより合理的かつ明確にします。また、「バックエンド」の用語も変更され、新しいユーザーの理解の障壁が低くなります。
- 「ローカル バックエンド」を「物理インポート モード」に置き換えます。
- 「tidb backend」を「logical import mode」に置き換えます。
TiDBデータ共有サブスクリプション
クラスタ間の RawKV レプリケーションをサポート (実験的)
新しいコンポーネントTiKV-CDC を使用して、RawKV のデータ変更をサブスクライブし、データ変更を下流の TiKV クラスターにリアルタイムで複製することをサポートし、クラスター間のレプリケーションを可能にします。
DDLおよびDMLイベントのフィルタリングをサポート
特別な場合には、増分データ変更ログのフィルター ルールを設定する必要があります。たとえば、DROP TABLE などの高リスクの DDL イベントをフィルターします。v6.2.0 以降、TiCDC は指定されたタイプの DDL イベントのフィルターと、SQL 式に基づく DML イベントのフィルターをサポートします。これにより、TiCDC はより多くのデータ レプリケーション シナリオに適用できます。
互換性の変更
システム変数
変数名 | タイプを変更 | 説明 |
---|---|---|
tidb_enable_new_cost_interface | 新しく追加された | この変数は、 コストモデルの実装をリファクタリングを有効にするかどうかを制御します。 |
tidbコストモデル_バージョン | 新しく追加された | TiDB は、物理的な最適化中にコスト モデルを使用してインデックスと演算子を選択します。この変数は、コスト モデル バージョンを選択するために使用されます。TiDB v6.2.0 では、内部テストで以前のバージョンよりも精度の高いコスト モデル バージョン 2 が導入されています。 |
tidb_enable_concurrent_ddl | 新しく追加された | この変数は、TiDB が同時 DDL ステートメントを使用できるようにするかどうかを制御します。この変数を変更しないでください。この変数を無効にするリスクは不明であり、クラスターのメタデータが破損する可能性があります。 |
tiflash_fine_grained_shuffle_stream_count | 新しく追加された | この変数は、ウィンドウ関数が実行のためにTiFlashにプッシュダウンされるときに、ウィンドウ関数実行の同時実行レベルを制御します。 |
tiflash_fine_grained_shuffle_batch_size | 新しく追加された | Fine Grained Shuffle を有効にすると、 TiFlashにプッシュダウンされたウィンドウ関数を並列で実行できます。この変数は、送信者が送信するデータのバッチ サイズを制御します。送信者は、累積行数がこの値を超えるとデータを送信します。 |
tidb_default_string_match_selectivity | 新しく追加された | この変数は、行数を推定するときに、フィルター条件でlike 、 rlike 、およびregexp 関数の関数の選択性を設定するために使用されます。この変数は、これらの関数の推定を支援するために TopN を有効にするかどうかも制御します。 |
tidb_enable_analyze_snapshot | 新しく追加された | この変数は、 ANALYZE 実行するときに履歴データを読み取るか、最新のデータを読み取るかを制御します。 |
tidb_generate_binary_plan | 新しく追加された | この変数は、スロー ログとステートメントの概要にバイナリ エンコードされた実行プランを生成するかどうかを制御します。 |
tidb_opt_skew_distinct_agg | 新しく追加された | この変数は、オプティマイザがDISTINCT 含む集計関数を2 レベルの集計関数に書き換えるかどうか (たとえば、 SELECT b, COUNT(DISTINCT a) FROM t GROUP BY b をSELECT b, COUNT(a) FROM (SELECT b, a FROM t GROUP BY b, a) t GROUP BY b に書き換える) を設定します。 |
tidb_enable_noop_variables | 新しく追加された | この変数は、 SHOW [GLOBAL] VARIABLES の結果にnoop 変数を表示するかどうかを制御します。 |
tidb_min_paging_size | 新しく追加された | この変数は、コプロセッサ ページング要求プロセス中の最大行数を設定するために使用されます。 |
tidb_txn_commit_batch_size | 新しく追加された | この変数は、TiDB が TiKV に送信するトランザクション コミット要求のバッチ サイズを制御するために使用されます。 |
tidb_enable_change_multi_schema | 削除されました | この変数は、v6.2.0 以降ではデフォルトでALTER TABLE ステートメントで複数の列またはインデックスを変更できるため削除されます。 |
tidb_enable_outer_join_reorder | 修正済み | この変数は、TiDB の結合したテーブルの再配置アルゴリズムが外部結合をサポートするかどうかを制御します。v6.1.0 では、デフォルト値はON で、結合順序の外部結合のサポートがデフォルトで有効になっていることを意味します。v6.2.0 以降では、デフォルト値はOFF で、サポートがデフォルトで無効になっていることを意味します。 |
コンフィグレーションファイルのパラメータ
コンフィグレーションファイル | コンフィグレーション | タイプを変更 | 説明 |
---|---|---|---|
ティビ | フィードバック確率 | 削除されました | この構成はもはや有効ではなく、推奨されません。 |
ティビ | クエリフィードバック制限 | 削除されました | この構成はもはや有効ではなく、推奨されません。 |
ティクヴ | サーバー.simplify-metrics | 新しく追加された | この構成は、返される監視メトリックを簡素化するかどうかを指定します。 |
ティクヴ | クォータ.バックグラウンドCPU時間 | 新しく追加された | この構成は、読み取りおよび書き込み要求を処理するために TiKV バックグラウンドで使用される CPU リソースのソフト制限を指定します。 |
ティクヴ | クォータ.バックグラウンド書き込み帯域幅 | 新しく追加された | この構成は、バックグラウンド トランザクションがデータを書き込む帯域幅のソフト制限を指定します (現在は有効ではありません)。 |
ティクヴ | クォータ.バックグラウンド読み取り帯域幅 | 新しく追加された | この構成は、バックグラウンド トランザクションとコプロセッサーがデータを読み取る帯域幅のソフト制限を指定します (現在は有効ではありません)。 |
ティクヴ | クォータの自動調整を有効にする | 新しく追加された | この構成では、クォータの自動調整を有効にするかどうかを指定します。この構成項目を有効にすると、TiKV は TiKV インスタンスの負荷に基づいてバックグラウンド要求のクォータを動的に調整します。 |
ティクヴ | rocksdb.パイプラインコミットを有効にする | 削除されました | この構成はもう有効ではありません。 |
ティクヴ | gc-マージ-書き換え | 削除されました | この構成はもう有効ではありません。 |
ティクヴ | ログバックアップを有効にする | 新しく追加された | この構成は、TiKV でログ バックアップを有効にするかどうかを制御します。 |
ティクヴ | ログバックアップのファイルサイズ制限 | 新しく追加された | この構成は、ログ バックアップ データのサイズ制限を指定します。この制限に達すると、データは自動的に外部storageにフラッシュされます。 |
ティクヴ | ログバックアップ.初期スキャン保留中のメモリ割り当て | 新しく追加された | この構成は、増分スキャン データを格納するために使用されるキャッシュの割り当てを指定します。 |
ティクヴ | ログバックアップの最大フラッシュ間隔 | 新しく追加された | この構成は、ログ バックアップでバックアップ データを外部storageに書き込む最大間隔を指定します。 |
ティクヴ | ログバックアップ初期スキャンレート制限 | 新しく追加された | この構成は、ログ バックアップの増分データ スキャンにおけるスループットのレート制限を指定します。 |
ティクヴ | ログバックアップ.スレッド数 | 新しく追加された | この構成は、ログ バックアップで使用されるスレッドの数を指定します。 |
ティクヴ | ログバックアップ.temp-path | 新しく追加された | この構成は、ログ ファイルが外部storageにフラッシュされる前に書き込まれる一時パスを指定します。 |
ティクヴ | rocksdb.defaultcf.フォーマットバージョン | 新しく追加された | SST ファイルの形式バージョン。 |
ティクヴ | rocksdb.writecf.フォーマットバージョン | 新しく追加された | SST ファイルの形式バージョン。 |
ティクヴ | rocksdb.lockcf.フォーマットバージョン | 新しく追加された | SST ファイルの形式バージョン。 |
PD | レプリケーション モード.dr-auto-sync.wait-async-timeout | 削除されました | この設定は有効にならず、削除されます。 |
PD | レプリケーション モード.dr-auto-sync.wait-sync-timeout | 削除されました | この設定は有効にならず、削除されます。 |
TiFlash | storage.format_version | 修正済み | デフォルト値format_version は、v6.2.0 以降のバージョンのデフォルト形式である4 に変更され、書き込み増幅とバックグラウンド タスクのリソース消費が削減されます。 |
TiFlash | プロファイル.default.dt_enable_read_thread | 新しく追加された | この構成は、storageエンジンからの読み取り要求を処理するためにスレッド プールを使用するかどうかを制御します。デフォルト値はfalse です。 |
TiFlash | プロファイル.default.dt_page_gc_threshold | 新しく追加された | この構成は、PageStorage データ ファイル内の有効なデータの最小比率を指定します。 |
ティCDC | --overwrite-checkpoint-ts | 新しく追加された | この設定はcdc cli changefeed resume サブコマンドに追加されます。 |
ティCDC | --確認しない | 新しく追加された | この設定はcdc cli changefeed resume サブコマンドに追加されます。 |
DM | モード | 新しく追加された | この設定は検証パラメータです。オプションの値はfull 、 fast 、 none です。デフォルト値はnone で、データは検証されません。 |
DM | 労働者数 | 新しく追加された | この設定はバリデータパラメータであり、バックグラウンドでの検証ワーカーの数を指定します。デフォルト値は4 です。 |
DM | 行エラー遅延 | 新しく追加された | この設定は検証パラメータです。指定された時間内に行が検証されない場合、エラー行としてマークされます。デフォルト値は 30m で、これは 30 分を意味します。 |
TiDB Lightning | tikv-importer.store-write-bwlimit | 新しく追加された | この設定は、 TiDB Lightning が各 TiKV ストアにデータを書き込むときの書き込み帯域幅を決定します。デフォルト値は0 で、帯域幅が制限されていないことを示します。 |
TiDB Lightning | tikv-importer.ディスククォータ | 新しく追加された | この構成により、 TiDB Lightningが使用するstorageスペースが制限されます。 |
その他
- TiFlash
format_version
4
から3
にダウングレードできません。詳細についてはTiFlashアップグレード ガイド参照してください。 - v6.2.0 以降のバージョンでは、デフォルト値
false
をdt_enable_logical_split
のままにして、true
に変更しないことを強くお勧めします。詳細については、既知の問題#5576を参照してください。 - バックアップ クラスターにTiFlashレプリカがある場合、 TiFlashを実行すると、復元クラスターにはTiFlashレプリカのデータが含まれなくなります。TiFlash レプリカからデータを復元するには、 TiFlashレプリカを手動で構成する必要があります
exchange partition
DDL ステートメントを実行すると、PITR が失敗する可能性があります。アップストリーム データベースが TiDB Lightning の物理インポート モードを使用してデータをインポートする場合、ログ バックアップでデータをバックアップすることはできません。データのインポート後に完全バックアップを実行することをお勧めします。PITR のその他の互換性の問題については、 PITRの制限参照してください。 - TiDB v6.2.0 以降では、データの復元時にパラメータ
--with-sys-table=true
を指定することで、mysql
スキーマでテーブルを復元できます。 ALTER TABLE
ステートメントを実行して複数の列またはインデックスを追加、削除、または変更する場合、TiDB は、同じ DDL ステートメントの変更に関係なく、ステートメントの実行前と実行後のテーブルを比較してテーブルの一貫性をチェックします。一部のシナリオでは、DDL の実行順序が MySQL と完全に互換性がありません。- TiDBコンポーネントが v6.2.0 以降の場合、TiKVコンポーネントはv6.2.0 より前のバージョンであってはなりません。
- TiKV は動的構成サポートする構成項目
split.region-cpu-overload-threshold-ratio
追加します。 - スロークエリログ
information_schema.statements_summary
およびinformation_schema.slow_query
、バイナリ形式でエンコードされたbinary_plan
または実行プランをエクスポートできます。 SHOW TABLE ... REGIONS
ステートメントにSCHEDULING_CONSTRAINTS
とSCHEDULING_STATE
2 つの列が追加されます。これらはそれぞれ、SQL の配置におけるリージョンスケジュール制約と現在のスケジュール状態を示します。- TiDB v6.2.0 以降では、 ティKV-CDCを介して RawKV のデータ変更をキャプチャできます。
ROLLBACK TO SAVEPOINT
を使用してトランザクションを指定されたセーブポイントまでロールバックすると、MySQL は指定されたセーブポイント後にのみ保持されたロックを解放しますが、TiDB悲観的トランザクションでは、TiDB は指定されたセーブポイント後に保持されたロックをすぐには解放しません。代わりに、TiDB はトランザクションがコミットまたはロールバックされたときにすべてのロックを解放します。- TiDB v6.2.0 以降、
SELECT tidb_version()
ステートメントはストア タイプ (tikv または unistore) も返します。 - TiDB には隠しシステム変数がなくなりました。
- TiDB v6.2.0 では、2 つの新しいシステム テーブルが導入されました。
INFORMATION_SCHEMA.VARIABLES_INFO
: TiDB システム変数に関する情報を表示するために使用されます。PERFORMANCE_SCHEMA.SESSION_VARIABLES
: TiDB セッション レベルのシステム変数に関する情報を表示するために使用されます。
削除された機能
TiDB v6.2.0 以降、 BR を使用した RawKV のバックアップと復元は非推奨になりました。
改善点
ティビ
SHOW COUNT(*) WARNINGS
とSHOW COUNT(*) ERRORS
ステートメント#25068 @ いいねをサポートするSHOW TABLES/DATABASES LIKE …
の出力をMySQL互換にします。出力の列名にはLIKE
値#35116 @ いいねが含まれます。SHA-2 #35998 @ ウイルスディフェンダーを使用したパスワードログインの検証速度を向上
コプロセッサー通信プロトコルを最適化します。これにより、データ読み取り時の TiDB プロセスのメモリ消費量が大幅に削減され、テーブルをスキャンしてDumplingでデータをエクスポートするシナリオで OOM の問題がさらに軽減されます。システム変数
tidb_enable_paging
は、この通信プロトコルを有効にするかどうかを制御するために使用されます (SESSION または GLOBAL のスコープ)。このプロトコルはデフォルトでは無効になっています。有効にするには、変数値をtrue
#35633 @ 天菜あま @ うわーに設定します。一部の演算子(HashJoin、HashAgg、Update、Delete) うわーメモリ追跡の精度を最適化( #35634 @ #35635 )( #34096 #35631 エキシウム )
システムテーブル
INFORMATION_SCHEMA.DATA_LOCK_WAIT
楽観的トランザクション#34609 @ ロングファンソンのロック情報の記録をサポートします。
ティクヴ
PD
TiFlash
ツール
バックアップと復元 (BR)
ティCDC
TiDB Lightning
TiUP
バグ修正
ティビ
- クエリ条件でパーティション キーが使用され、照合がクエリ パーティション テーブル#32749 @ ミョンスの照合と異なる場合にパーティションが誤ってプルーニングされる問題を修正しました。
- ホスト#33061 @ モルゴに大文字が含まれている場合、
SET ROLE
付与されたロールと一致しない問題を修正しました。 auto_increment
の列を#34891 @ 定義2014でドロップできない問題を修正SHOW CONFIG
削除された構成項目がいくつか表示される問題を修正#34867 @ モルゴSHOW DATABASES LIKE …
大文字と小文字を区別する問題を修正#34766 @ エ1イヤ1SHOW TABLE STATUS LIKE ...
大文字と小文字を区別する問題を修正#7518 @ いいねmax-index-length
が非厳密モードでエラーを報告する問題を修正#34931 @ エ1イヤ1ALTER COLUMN ... DROP DEFAULT
機能しない問題を修正#35018 @ 定義2014- テーブルを作成するときに、列のデフォルト値とタイプが一致せず、自動的に修正されない問題を修正#34881 @ ロイド・ポティガー
DROP USER
#35059 @ lcwangchaoを実行した後、mysql.columns_priv
テーブルのデータが同期的に削除されない問題を修正しました。- 一部のシステムのスキーマ内でのテーブル作成を禁止することで、DDL ジャムの問題を修正しました#35205 @ タンジェンタ
- パーティション化されたテーブルをクエリすると、場合によっては「インデックス範囲外」および「未使用のインデックス」エラーが報告される問題を修正#35181 @ ミョンス
INTERVAL expr unit + expr
エラー#30253 @ ミョンスを報告する可能性がある問題を修正- トランザクション#35644 @ 翻訳者で作成された後に一時テーブルが見つからないバグを修正
- 照合順序を
ENUM
列#31637 @ 翻訳:に設定すると発生するpanic問題を修正 - 1 つの PD ノードがダウンすると、他の PD ノード#35708 @ タンジェンタを再試行しないため、
information_schema.TIKV_REGION_STATUS
のクエリが失敗する問題を修正しました。 SHOW CREATE TABLE …
セットまたはSET character_set_results = GBK
#31338 @ タンジェンタの後のENUM
列が正しく表示されない問題を修正しました- システム変数
tidb_log_file_max_days
とtidb_config
#35190 @ モルゴの誤ったスコープを修正 SHOW CREATE TABLE
の出力が MySQL のENUM
目またはSET
列目#36317 @ 定義2014と互換性がない問題を修正しました。- テーブル作成時に
LONG BYTE
列の動作がMySQL #36239 @ 定義2014と互換性がない問題を修正 auto_increment = x
一時テーブル#36224 @ 翻訳者に反映されない問題を修正- 列を同時に変更する際の誤ったデフォルト値を修正#35846 @ 翻訳:
- 可用性を向上させるために、不健全な TiKV ノードにリクエストを送信しないようにする#34906 @ スティクナーフ
- LOAD DATA ステートメント#35198 @ スペードA-タンで列リストが機能しない問題を修正
- いくつかのシナリオで、悲観的ロックが非一意のセカンダリインデックス#36235 @ エキシウムに誤って追加される問題を修正しました。
ティクヴ
- 悲観的トランザクション#11612 @ スティクナーフで
WriteConflict
エラーを報告しないようにする - 非同期コミットが有効な場合の悲観的トランザクションにおけるコミットレコードの重複の可能性を修正#12615 @ スティクナーフ
storage.api-version
1
から2
#12600 @ ピンギュに変更するときに TiKV がパニックになる問題を修正しました- TiKV と PD #12518 @ 5kbpsの間のリージョンサイズ設定が一致しない問題を修正
- TiKVがPDクライアント#12506 @ コナー1996 #12827再接続し続ける問題を修正
- 空の文字列#12673 @ うわー型変換を実行するときに TiKV がパニックになる問題を修正
DATETIME
値に小数点が含まれる場合やZ
#12739 @ ゲンリキ場合に発生する時間解析エラーの問題を修正しました。- Apply 演算子によって TiKV RocksDB に書き込まれるパフォーマンス コンテキストが粗粒度#11044 @ リクササシネーターになる問題を修正しました
- バックアップ / 輸入 / CDCの設定が無効な場合に TiKV が起動に失敗する問題を修正#12771 @ 3ポインター
- ピアが同時に分割され、破棄されたときに発生する可能性のあるpanic問題を修正#12825 @ ビジージェイ
- リージョンマージプロセス#12663 @ ビジージェイでソースピアがスナップショットによってログをキャッチアップするときに発生する可能性のあるpanic問題を修正しました。
max_sample_size
が0
#11192 @ リクササシネーターに設定されている場合に統計を分析すると発生するpanicの問題を修正しました- Raft Engineが有効になっているときに暗号化キーがクリーンアップされない問題を修正#12890 @ タボキ
get_valid_int_prefix
関数が TiDB と互換性がない問題を修正しました。たとえば、FLOAT
型が誤ってINT
#13045 @ グオシャオゲに変換されていました。- 新しいリージョンのコミットログ期間が長すぎるため、QPS が#13077 @ コナー1996低下する問題を修正しました。
- リージョンハートビートが中断された後にPDがTiKVに再接続しない問題を修正#12934 @ バッファフライ
- 悲観的トランザクション#11612 @ スティクナーフで
ツール
寄稿者
TiDB コミュニティの以下の貢献者に感謝いたします。