📣
TiDB Cloud Premium はパブリックプレビュー中です。エンタープライズワークロード向けの無制限のスケーリング、即時の弾力性、高度なセキュリティを提供します。このページは自動翻訳されたものです。原文はこちらからご覧ください。

TiDB 6.2.0 リリースノート



発売日:2022年8月23日

TiDBバージョン: 6.2.0-DMR

バージョン6.2.0-DMRの主な新機能と改善点は以下のとおりです。

新機能

SQL

  • 物理データ圧縮機能はGAです

    TiFlashのバックエンドは、特定の条件に基づいて物理データを自動的に圧縮し、不要なデータの蓄積を減らし、データストレージ構造を最適化します。

    TiFlashテーブルには、データ圧縮が自動的にトリガーされる前に、一定量の不要なデータが含まれていることがよくあります。この機能を使用すると、適切なタイミングを選択してSQLステートメントを手動で実行し、 TiFlash内の物理データを即座に圧縮できるため、ストレージ容量の使用量を削減し、クエリのパフォーマンスを向上させることができます。この機能はTiDB v6.1では実験的でしたが、TiDB v6.2.0で一般提供(GA)となりました。

    ユーザー向けドキュメント #4145 @breezewish

可観測性

  • TiDB DashboardをPDから分離

    TiDB DashboardはPDから監視ノードに移動されました。これにより、TiDB DashboardがPDに与える影響が軽減され、PDの安定性が向上します。

    @Hawkson-jee

  • TiDB Dashboardにモニタリングページが追加されました

    新しいモニタリング ページには、パフォーマンス チューニングに必要な主要な指標が表示され、これに基づいてデータベース時間によるパフォーマンスチューニングを参照してパフォーマンスを分析および調整できます。

    具体的には、ユーザー応答時間とデータベース時間を全体的かつトップダウンの視点から分析することで、ユーザー応答時間のボトルネックがデータベースの問題によるものかどうかを確認できます。ボトルネックがデータベースにある場合は、データベース時間の概要とSQLレイテンシーの内訳を使用してボトルネックを特定し、パフォーマンスを調整できます。

    ユーザー向けドキュメント #1381 @YiniXu9506

  • TiDB Dashboardはビジュアル実行計画をサポートしています

    TiDB Dashboardは、SQLステートメントページとモニタリングページを通じて、視覚的な実行計画と基本的な診断サービスを提供します。この機能により、クエリプランの各ステップを特定するための新しい視点が得られます。そのため、クエリ実行計画のすべての痕跡をより直感的に把握できます。

    この機能は、複雑で大規模なクエリの実行方法を学習する際に特に役立ちます。また、TiDB Dashboardは各クエリ実行計画について、実行の詳細を自動的に分析し、潜在的な問題点を特定し、特定のクエリプランの実行時間を短縮するための最適化提案を提供します。

    ユーザー向けドキュメント #1224 @time-and-fate

  • Lock ビューは、楽観的トランザクションの待機情報の表示をサポートしています。

    ロックの競合が多すぎると、深刻なパフォーマンスの問題を引き起こす可能性があり、そのような問題のトラブルシューティングにはロックの競合を検出することが不可欠です。v6.2.0 より前の TiDB では、 INFORMATION_SCHEMA.DATA_LOCK_WAITSシステム ビューを使用してロックの競合関係を表示することはできましたが、楽観的トランザクションの待機情報は表示されませんでした。TiDB v6.2.0 ではDATA_LOCK_WAITSビューが拡張され、悲観的ロックによってブロックされている楽観的トランザクションがビューに一覧表示されます。この機能により、ユーザーはロックの競合を迅速に検出でき、アプリケーションの改善の基礎となるため、ロックの競合の頻度を減らし、全体的なパフォーマンスを向上させることができます。

    ユーザー向けドキュメント #34609 @longfangsong

パフォーマンス

  • LEADINGオプティマイザヒントを改善し、外部結合の順序付けをサポートするようにしました。

    バージョン 6.1.0 では、テーブルの結合順序を変更するためにオプティマイザヒントLEADINGが導入されました。しかし、このヒントは外部結合を含むクエリには適用できませんでした。詳細については、 LEADING文書を参照してください。バージョン 6.2.0 では、TiDB はこの制限を解除しました。外部結合を含むクエリでも、このヒントを使用してテーブルの結合順序を指定できるようになり、SQL の実行パフォーマンスが向上し、実行計画の急激な変更を回避できます。

    ユーザー向けドキュメント #29932 @Reminiscent

  • SEMI_JOIN_REWRITEクエリのパフォーマンスを向上させるために、新しいオプティマイザEXISTS を追加します。

    場合によっては、 EXISTSを含むクエリは最適な実行計画を取得できず、実行時間が長くなる可能性があります。v6.2.0 では、このようなシナリオに対応するためにオプティマイザに書き換えルールが追加され、クエリ内でSEMI_JOIN_REWRITEを使用することで、オプティマイザにクエリを強制的に書き換えさせ、クエリのパフォーマンスを向上させることができます。

    ユーザー向けドキュメント #35323 @winoros

  • 分析クエリのパフォーマンスを向上させるために、新しいオプティマイザヒントMERGEを追加します。

    共通テーブル式 (CTE) は、クエリロジックを簡素化する効果的な方法です。複雑なクエリを作成する際に広く使用されています。v6.2.0 より前のバージョンでは、 TiFlash環境で CTE を自動的に展開することができなかったため、MPP の実行効率が多少制限されていました。v6.2.0 では、MySQL 互換のオプティマイザヒントMERGEが導入されました。このヒントにより、オプティマイザは CTE インラインを展開できるようになり、CTE クエリ結果のコンシューマーがTiFlashでクエリを並行して実行できるようになったため、一部の分析クエリのパフォーマンスが向上しました。

    ユーザー向けドキュメント #36122 @dayicklp

  • 一部の分析シナリオにおける集計操作のパフォーマンスを最適化する

    TiFlash を使用して OLAP シナリオで列に対して集計操作を実行する場合、集計列の分布が不均一であるために深刻なデータスキューが発生し、集計列にさまざまな値が含まれている場合、その列に対するCOUNT(DISTINCT)クエリの実行効率が低下します。v6.2.0 では、単一の列に対するCOUNT(DISTINCT)クエリのパフォーマンスを向上させるための新しい書き換えルールが導入されました。

    ユーザー向けドキュメント #36169 @fixdb

  • TiDBは同時DDL操作をサポートしています

    TiDB v6.2.0では、新しい同時実行DDLフレームワークが導入されました。これにより、異なるテーブルオブジェクトに対してDDLステートメントを同時実行できるようになり、他のテーブルに対するDDL操作によってDDL操作がブロックされる問題が修正されました。さらに、TiDBは、複数のテーブルにインデックスを追加したり、列の型を変更したりする際に、同時DDL実行をサポートします。これにより、DDL実行の効率が向上します。

    #32031 @wjhuang2016

  • オプティマイザは文字列マッチングの推定精度を向上させます

    文字列マッチングのシナリオでは、オプティマイザが行数を正確に推定できない場合、最適な実行計画の生成に影響します。たとえば、条件がlike '%xyz'または正規表現regex ()の場合です。このようなシナリオでの推定精度を向上させるため、TiDB v6.2.0 では推定方法を強化しました。新しい方法では、統計情報とシステム変数の TopN 情報を組み合わせて精度を向上させ、マッチングの選択性を手動で変更できるようにすることで、SQL のパフォーマンスを向上させています。

    ユーザー向けドキュメント #36209 @time-and-fate

  • TiFlashにプッシュダウンされたウィンドウ関数は、複数のスレッドで実行できます。

    きめ細かいシャッフル機能を有効にすると、ウィンドウ関数を単一のスレッドではなく、複数のスレッドで実行できるようになります。この機能により、ユーザーの操作を変更することなく、クエリの応答時間を大幅に短縮できます。変数の値を調整することで、シャッフルの粒度を制御できます。

    ユーザー向けドキュメント #4631 @guo-shaoge

  • TiFlashは、より新しいバージョンのストレージフォーマットをサポートしています。

    新しいストレージフォーマットは、高並列処理や高負荷なワークロード環境において、ガベージコレクション(GC)によって引き起こされるCPU使用率の上昇を緩和します。これにより、バックグラウンドタスクのI/Oトラフィックが大幅に削減され、高並列処理や高負荷なワークロード環境下での安定性が向上します。同時に、ディスク容量の増大やディスクの無駄遣いも大幅に削減できます。

    TiDB v6.2.0では、データはデフォルトで新しいストレージ形式で保存されます。TiFlashを以前のバージョンからv6.2.0にアップグレードする場合、以前のTiFlashバージョンでは新しいストレージ形式を認識できないため、 TiFlash上​​でインプレースダウングレードを実行することはできませんのでご注意ください。

    TiFlash のアップグレードの詳細については、 TiFlashアップグレードガイドを参照してください。

    ユーザー向けドキュメント #3594 @JaySon-Huang@lidezhu@jiaqizho

  • TiFlashは、複数の同時実行シナリオにおけるデータスキャン性能を最適化します(実験的)。

    TiFlashは、同一データの読み取り操作を統合することで、同一データの重複読み取りを削減し、複数の同時タスクにおけるリソースオーバーヘッドを最適化することで、データスキャン性能を向上させます。これにより、同一データが複数の同時タスクに関与する場合に、各タスクで同一データを個別に読み取る必要が生じたり、同一データが同時に複数回読み取られたりする状況を回避します。

    ユーザー向けドキュメント #5376 @JinheLin

  • TiFlashは、データの一貫性を犠牲にして読み書き速度を向上させるため、データスキャン用のFastScan機能を追加しました(実験的)。

    TiDBはv6.2.0でFastScanを導入しました。FastScanは整合性チェックをスキップすることで処理速度を大幅に向上させます。FastScanは、オフライン分析タスクなど、データの高精度や整合性が求められないシナリオに適しています。従来、 TiFlashはデータの整合性を確保するために、データスキャン処理中にデータの整合性チェックを実行し、複数の異なるバージョンから必要なデータを見つける必要がありました。

    TiDB v6.2.0 に以前のバージョンからアップグレードすると、データの一貫性を確保するために、すべてのテーブルで FastScan がデフォルトで有効になりません。FastScan は各テーブルごとに個別に有効にできます。TiDB v6.2.0 で FastScan が有効になっているテーブルは、それより低いバージョンにダウングレードすると無効になりますが、通常のデータ読み取りには影響しません。この場合、強力な一貫性読み取りと同等になります。

    ユーザー向けドキュメント #5252 @hongyunyan

安定性

  • TiKVはCPU使用率の自動調整をサポートしています(実験的)。

    データベースは通常、内部処理を実行するためのバックグラウンドプロセスを備えています。統計情報を収集することで、パフォーマンスの問題を特定し、より適切な実行計画を作成し、データベースの安定性とパフォーマンスを向上させることができます。しかし、より効率的に情報を収集する方法、そして日常的な利用に影響を与えずにバックグラウンド処理とフォアグラウンド処理のリソースオーバーヘッドのバランスを取る方法は、データベース業界における長年の課題の一つでした。

    バージョン6.2.0以降、TiDBはTiKV設定ファイルを使用してバックグラウンドリクエストのCPU使用率を設定できるようになりました。これにより、TiKVでの統計情報の自動収集などのバックグラウンド操作のCPU使用率を制限し、極端な場合にバックグラウンド操作によるユーザー操作のリソース占有を回避できます。これにより、データベースの操作の安定性と効率性が確保されます。

    同時に、TiDBはCPU使用率の自動調整もサポートしています。TiKVは、インスタンスのCPU使用率に応じて、バックグラウンドリクエストが占めるCPUリソースを適応的に調整します。この機能はデフォルトでは無効になっています。

    ユーザー向けドキュメント #12503 @BornChanger

使いやすさ

  • TiKVは、コマンドラインフラグを使用して詳細な設定情報を一覧表示することをサポートしています。

    TiKV 設定ファイルは、TiKV インスタンスの管理に使用できます。しかし、長時間実行され、複数のユーザーによって管理されているインスタンスの場合、どの設定項目が変更されたか、デフォルト値は何かを把握するのは困難です。これは、クラスタのアップグレードやデータの移行時に混乱を招く可能性があります。TiDB v6.2.0 以降、tikv-server は、すべての TiKV 設定項目のデフォルト値と現在の値を一覧表示する新しいコマンドラインフラグ—-config-infoをサポートしており、TiKV プロセスの起動パラメータをユーザーがすばやく確認できるようになり、使いやすさが向上します。

    ユーザー向けドキュメント #12492@glorv

MySQLとの互換性

  • TiDBは、単一のALTER TABLEステートメントで複数の列またはインデックスを変更することをサポートしています。

    バージョン6.2.0より前は、TiDBは単一のDDL変更のみをサポートしていたため、異種データベースを移行する際にDDL操作の互換性が損なわれ、複雑なDDLステートメントをTiDBがサポートする複数の単純なDDLステートメントに変換するには余分な労力が必要でした。さらに、一部のユーザーはORMフレームワークを使用してSQLでアセンブリを作成していたため、SQLの互換性の問題も発生していました。バージョン6.2.0以降、TiDBは単一のSQLステートメントで複数のスキーマオブジェクトを変更できるようになり、ユーザーにとってSQLの実装が容易になり、使いやすさが向上しました。

    ユーザー向けドキュメント #14766 @tangenta

  • トランザクションにおけるセーブポイントの設定をサポートする

    トランザクションとは、データベースがACID特性を保証する一連の連続した操作の論理的な集合です。複雑なアプリケーションシナリオでは、トランザクション内で多数の操作を管理する必要があり、場合によってはトランザクション内の操作をロールバックする必要が生じることもあります。「セーブポイント」は、トランザクションの内部実装のための名前付きメカニズムです。このメカニズムを使用することで、トランザクション内のロールバックポイントを柔軟に制御でき、より複雑なトランザクションを管理し、多様なアプリケーション設計においてより自由度を高めることができます。

    ユーザー向けドキュメント #6840 @crazycs520

データ移行

  • BRはユーザーデータと権限データの復元をサポートしています

    BR は、通常の復元を実行する際に、ユーザーデータと権限データの復元をサポートします。ユーザーデータと権限データを復元するために、追加の復元プランは必要ありません。この機能を有効にするには、 BRを使用してデータを復元する際に--with-sys-tableパラメーターを指定してください。

    ユーザー向けドキュメント #35395 @D3Hunter

  • ログとスナップショットのバックアップと復元に基づくポイントインタイムリカバリ(PITR)をサポートします。

    PITRは、ログとスナップショットのバックアップおよび復元に基づいて実装されています。これにより、クラスタの履歴上の任意の時点のスナップショットを新しいクラスタに復元できます。この機能は、以下のニーズを満たします。

    • ディザスタリカバリにおけるRPO(目標復旧時点)を20分未満に短縮する。
    • アプリケーションからの書き込みエラーが発生した場合は、例えば、エラー発生前の状態にデータをロールバックするなどの方法で対処します。
    • 法令の要件を満たすため、履歴データの監査を実施する。

    この機能には使用上の制限があります。詳細はユーザーマニュアルを参照してください。

    ユーザー向けドキュメント #29501 @joccau

  • DMは継続的なデータ検証をサポートします(実験的)

    継続的なデータ検証は、データ移行中に上流のbinlogと下流に書き込まれたデータを継続的に比較するために使用されます。検証ツールは、データの不整合やレコードの欠落など、データの例外を特定します。

    この機能は、一般的な完全データ検証方式における検証の遅延や過剰なリソース消費といった問題を解決します。

    ユーザー向けドキュメント #4426 @D3Hunter@buchuitoudegou

  • Amazon S3バケットのリージョンを自動的に識別する

    データ移行タスクでは、Amazon S3バケットのリージョンを自動的に識別できます。リージョンパラメータを明示的に渡す必要はありません。

    #34275 @WangLe1321

  • TiDB Lightningのディスククォータ設定をサポート(実験的)

    TiDB Lightning が物理インポートモード (backend='local') でデータをインポートする場合、sorted-kv-dir にはソースデータを格納するのに十分な空き容量が必要です。ディスク容量が不足すると、インポートタスクが失敗する可能性があります。TiDB Lightning が使用するディスク容量の合計を制限するために、新しいdisk_quota設定を使用すれば、sorted-kv-dir に十分なストレージ容量がない場合でも、インポートタスクを正常に完了できます。

    ユーザー向けドキュメント #446 @buchuitoudegou

  • TiDB Lightningは、物理インポートモードでの本番クラスタへのデータインポートをサポートしています。

    従来、 TiDB Lightningの物理インポートモード(backend='local')は、対象クラスタに大きな影響を与えていました。例えば、移行中にPDのグローバルスケジューリングが一時停止されるといった問題がありました。そのため、従来の物理インポートモードは、初期データインポートにのみ適していました。

    TiDB Lightningは、既存の物理インポートモードを改良しました。テーブルのスケジュールを一時停止できるようにすることで、インポートの影響をクラスタレベルからテーブルレベルにまで軽減します。つまり、インポートされていないテーブルの読み書きが可能になります。

    この機能には手動設定は不要です。TiDBクラスタがv6.1.0以降、かつTiDB Lightningがv6.2.0以降の場合、新しい物理インポートモードは自動的に有効になります。

    ユーザー向けドキュメント #35148 @sleepymole

  • TiDB Lightningのユーザー向けドキュメントドキュメントをリファクタリングして、その構造をより合理的かつ明確にします。 「バックエンド」の用語も、新規ユーザーの理解の障壁を下げるために変更されています。

    • 「ローカルバックエンド」を「物理インポートモード」に置き換えてください。
    • 「tidb backend」を「logical import mode」に置き換えてください。

TiDBデータ共有サブスクリプション

  • クラスター間RawKVレプリケーションのサポート(実験的)

    新しいコンポーネントTiKV-CDCを使用して、RawKVのデータ変更を購読し、そのデータ変更を下流のTiKVクラスタにリアルタイムで複製することをサポートします。これにより、クラスタ間の複製が可能になります。

    ユーザー向けドキュメント #11965 @pingyu

  • DDLおよびDMLイベントのフィルタリングをサポートします。

    特別な状況では、増分データ変更ログに対してフィルタルールを設定したい場合があります。たとえば、DROP TABLEなどの高リスクなDDLイベントをフィルタリングする場合などです。TiCDCはバージョン6.2.0以降、指定されたタイプのDDLイベントのフィルタリングと、SQL式に基づくDMLイベントのフィルタリングをサポートしています。これにより、TiCDCはより多くのデータレプリケーションシナリオに適用可能になります。

    ユーザー向けドキュメント #6160 @asddongmen

互換性の変更

システム変数

変数名変更の種類説明
tidb_enable_new_cost_interface新しく追加されたこの変数はコストモデルの実装をリファクタリングしましたを有効にするかどうかを制御します。
tidb_cost_model_version新しく追加された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新しく追加された細粒度シャッフルが有効になっている場合、 TiFlashにプッシュダウンされるウィンドウ関数を並列実行できます。この変数は、送信側から送信されるデータのバッチサイズを制御します。送信側は、累積行数がこの値を超えた時点でデータを送信します。
tidb_default_string_match_selectivity新しく追加されたこの変数は、行数を推定する際のフィルタ条件におけるlikerlike 、および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 bSELECT b, COUNT(a) FROM (SELECT b, a FROM t GROUP BY b, a) t GROUP BY bに書き換えます。
tidb_enable_noop_variables新しく追加されたこの変数はnoopの結果にSHOW [GLOBAL] VARIABLES 変数を表示するかどうかを制御します。
tidb_min_paging_size新しく追加されたこの変数は、コプロセッサのページング要求処理中に処理される行の最大数を設定するために使用されます。
tidb_txn_commit_batch_size新しく追加されたこの変数は、TiDBがTiKVに送信するトランザクションコミット要求のバッチサイズを制御するために使用されます。
tidb_enable_change_multi_schema削除済みこの変数は、v6.2.0 以降では、デフォルトで 1 つのALTER TABLEステートメントで複数の列またはインデックスを変更できるため、削除されます。
tidb_enable_outer_join_reorder変更この変数は、TiDB の結合したテーブルの再配置アルゴリズムが Outer Join をサポートするかどうかを制御します。v6.1.0 では、デフォルト値はONであり、これは Join Reorder の Outer Join のサポートがデフォルトで有効になっていることを意味します。v6.2.0 以降では、デフォルト値はOFFであり、これはサポートがデフォルトで無効になっていることを意味します。

コンフィグレーションファイルパラメータ

コンフィグレーションファイルコンフィグレーション変更の種類説明
TiDBフィードバック確率削除済みこの設定はもはや有効ではなく、推奨されません。
TiDBクエリフィードバック制限削除済みこの設定はもはや有効ではなく、推奨されません。
TiKVサーバー.simplify-metrics新しく追加されたこの設定では、返される監視メトリクスを簡略化するかどうかを指定します。
TiKVquota.background-cpu-time新しく追加されたこの設定では、TiKVのバックグラウンド処理で読み取りおよび書き込み要求を処理するために使用されるCPUリソースのソフトリミットを指定します。
TiKVquota.background-write-bandwidth新しく追加されたこの設定では、バックグラウンド トランザクションがデータを書き込む際の帯域幅のソフト リミットを指定します (現在は有効ではありません)。
TiKVクォータ.バックグラウンド読み取り帯域幅新しく追加されたこの設定では、バックグラウンドトランザクションとコプロセッサーがデータを読み取る際の帯域幅のソフトリミットを指定します(現在は有効ではありません)。
TiKVquota.enable-auto-tune新しく追加されたこの設定では、クォータの自動調整を有効にするかどうかを指定します。この設定項目を有効にすると、TiKVはTiKVインスタンスの負荷に基づいて、バックグラウンドリクエストのクォータを動的に調整します。
TiKVrocksdb.enable-pipelined-commit削除済みこの設定はもはや有効ではありません。
TiKVgc-merge-rewrite削除済みこの設定はもはや有効ではありません。
TiKVログバックアップを有効にする新しく追加されたこの設定は、TiKV 上でログバックアップを有効にするかどうかを制御します。
TiKVログバックアップ.ファイルサイズ制限新しく追加されたこの設定では、ログバックアップデータのサイズ制限を指定します。この制限に達すると、データは自動的に外部ストレージに書き込まれます。
TiKVログバックアップ.初期スキャン保留中のメモリ割り当て新しく追加されたこの設定では、増分スキャンデータを保存するために使用されるキャッシュのクォータを指定します。
TiKVlog-backup.max-flush-interval新しく追加されたこの設定では、ログバックアップにおいてバックアップデータを外部ストレージに書き込む最大間隔を指定します。
TiKVログバックアップの初期スキャンレート制限新しく追加されたこの設定では、ログバックアップにおける増分データスキャンのスループットのレート制限を指定します。
TiKVlog-backup.num-threads新しく追加されたこの設定では、ログバックアップで使用されるスレッド数を指定します。
TiKVlog-backup.temp-path新しく追加されたこの設定では、ログファイルが外部ストレージに書き込まれる前に一時的に保存されるパスを指定します。
TiKVrocksdb.defaultcf.format-version新しく追加されたSSTファイルのフォーマットバージョン。
TiKVrocksdb.writecf.format-version新しく追加されたSSTファイルのフォーマットバージョン。
TiKVrocksdb.lockcf.format-version新しく追加されたSSTファイルのフォーマットバージョン。
PDレプリケーションモード.dr-auto-sync.wait-async-timeout削除済みこの設定は有効にならず、削除されます。
PDレプリケーションモード.dr-auto-sync.wait-sync-timeout削除済みこの設定は有効にならず、削除されます。
TiFlashstorage.format_version変更format_versionのデフォルト値が4に変更されます。これは v6.2.0 以降のバージョンのデフォルト形式であり、書き込み増幅とバックグラウンド タスクのリソース消費を削減します。
TiFlashprofiles.default.dt_enable_read_thread新しく追加されたこの設定は、ストレージエンジンからの読み取り要求を処理するためにスレッド プールを使用するかどうかを制御します。デフォルト値はfalseです。
TiFlashprofiles.default.dt_page_gc_threshold新しく追加されたこの設定では、PageStorageデータファイル内の有効データの最小比率を指定します。
TiCDC--overwrite-checkpoint-ts新しく追加されたこの設定はcdc cli changefeed resumeサブコマンドに追加されます。
TiCDC--確認しない新しく追加されたこの設定はcdc cli changefeed resumeサブコマンドに追加されます。
DMモード新しく追加されたこの設定はバリデーターパラメータです。オプションの値はfullfast 、およびnoneです。デフォルト値はnoneで、これはデータの検証を行いません。
DMワーカー数新しく追加されたこの設定はバリデーターパラメータであり、バックグラウンドで実行される検証ワーカーの数を指定します。デフォルト値は4です。
DM行エラー遅延新しく追加されたこの設定はバリデーターパラメータです。指定された時間内に検証が行われなかった場合、その行はエラー行としてマークされます。デフォルト値は30mで、これは30分を意味します。
TiDB Lightningtikv-importer.store-write-bwlimit新しく追加されたこの設定は、TiDB Lightning が各 TiKV ストアにデータを書き込む際の書き込み帯域幅を決定します。デフォルト値は0で、帯域幅に制限がないことを示します。
TiDB Lightningtikv-importer.disk-quota新しく追加されたこの構成により、TiDB Lightningが使用するストレージ容量が制限されます。

その他

  • TiFlash format_version 4から3にダウングレードすることはできません。詳細については、 TiFlashアップグレードガイドを参照してください。
  • バージョン6.2.0以降では、デフォルト値のfalsedt_enable_logical_splitのままにして、 trueに変更しないことを強くお勧めします。詳細は、既知の問題#5576を参照してください。
  • バックアップ クラスタにTiFlashレプリカがある場合、PITR を実行すると、リストア クラスタにはTiFlashレプリカ内のデータが含まれません。TiFlash レプリカからデータをリストアするには、 TiFlashレプリカを手動で構成する必要があります。 exchange partition DDL ステートメントを実行すると、PITR が失敗する可能性があります。アップストリームデータベースが TiDB Lightning の物理インポート モードを使用してデータをインポートする場合、ログ バックアップでデータをバックアップできません。データ インポート後にフル バックアップを実行することをお勧めします。PITR のその他の互換性の問題については、 PITRの制限を参照してください。
  • TiDB v6.2.0以降では、データ復元時にmysqlパラメータを指定することで--with-sys-table=trueスキーマのテーブルを復元できます。
  • 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_querybinary_plan 、またはバイナリ形式でエンコードされた実行計画をエクスポートできます。
  • SHOW TABLE ... REGIONSステートメントに、 SCHEDULING_CONSTRAINTSSCHEDULING_STATE 2 つの列が追加されます。これらはそれぞれ、SQL の配置におけるリージョンスケジューリング制約と現在のスケジューリング状態を示します。
  • TiDB v6.2.0以降では、 TiKV-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のバックアップと復元は非推奨となりました。

改善点

  • TiDB

    • SHOW COUNT(*) WARNINGSおよびSHOW COUNT(*) ERRORSステートメントのサポート #25068 @likzn

    • 一部のシステム変数に対する検証チェックを追加 #35048 @morgo

    • 一部の型変換のエラー メッセージを最適化 #32744 @fanrenhoo

    • KILLコマンドが DDL 操作をサポートするようになりました #24144 @morgo

    • SHOW TABLES/DATABASES LIKE …の出力を MySQL とより互換性のあるものにしてください。出力の列名にはLIKEの値が含まれています #35116 @likzn

    • JSON関連関数のパフォーマンスを改善する #35859 @wjhuang2016

    • SHA-2を使用したパスワードログインの検証速度を向上 #35998 @virusdefender

    • ログ出力の一部を簡略化 #36011 @dveeden

    • コプロセッサー通信プロトコルを最適化します。これにより、TiDB プロセスがデータを読み取る際のメモリ消費量を大幅に削減し、Dumplingによるテーブルのスキャンとデータのエクスポートのシナリオにおける OOM 問題をさらに軽減できます。システム変数tidb_enable_pagingを導入し、この通信プロトコルを有効にするかどうか (SESSION または GLOBAL のスコープで) を制御します。このプロトコルはデフォルトでは無効になっています。有効にするには、変数の値をtrueに設定します。 #35633 @tiancaiamao@wshwsh12

    • 一部の演算子 (HashJoin、HashAgg、Update、Delete) のメモリ追跡の精度を最適化しました ( #35634#35631#35635 @wshwsh12 ) ( #34096 @ekexium)

    • システム テーブルINFORMATION_SCHEMA.DATA_LOCK_WAIT楽観的トランザクションのロック情報の記録をサポートしています #34609 @longfangsong

    • トランザクションの監視メトリクスを追加 #34456 @longfangsong

  • TiKV

    • HTTPボディサイズを削減するために、gzipを使用してメトリクスレスポンスを圧縮するサポート #12355 @glorv
    • Grafana ダッシュボードの TiKV パネルの読みやすさを改善 #12007 @kevin-xianliu
    • Applyオペレーターのコミットパイプラインのパフォーマンスを最適化する #12898 @ethercflow
    • RocksDB で同時に実行されるサブコンパクション操作の数を動的に変更する機能のサポート ( rocksdb.max-sub-compactions ) #13145 @ethercflow
  • PD

    • リージョンのCPU使用率の統計的側面をサポートし、ロードベース分割の使用シナリオを強化する #12063 @JmPotato
  • TiFlash

    • TiFlash MPP エンジンのエラー処理を改良し、安定性を向上 #5095 @windtalker @yibin87

    • UTF8_BIN と UTF8MB4_BIN 照合順序の比較と並べ替えを最適化します #5294 @solotzg

  • ツール

    • Backup & Restore (BR)

      • 大規模クラスタバックアップにおけるS3レート制限によるバックアップ失敗を修正するため、バックアップデータディレクトリ構造を調整しました #30087 @MoCuishle28
    • TiCDC

      • 複数リージョンシナリオにおけるランタイムコンテキスト切り替えによるパフォーマンスオーバーヘッドを削減 #5610 @hicqu

      • REDO ログのパフォーマンスを最適化し、メタおよびデータの不整合の問題を修正します ( #6011 @CharlesCheung96 ) ( #5924 @zhaoxinyu) ( #6277@hicqu)

    • TiDB Lightning

      • EOF、読み取りインデックスが準備できていない、コプロセッサータイムアウトなど、再試行可能なエラーをさらに追加#36674#36566 @D3Hunter
    • TiUP

      • TiUPを使用して新しいクラスターをデプロイする場合、node-exporterはバージョン1.3.1を、blackbox-exporterはバージョン0.21.1を使用するため、さまざまなシステムや環境でのデプロイが確実に成功します。

バグ修正

  • TiDB

    • クエリ条件でパーティションキーが使用され、照合順序がクエリパーティションテーブルのものと異なる場合に、パーティションが正しく削除されない問題を修正します #32749 @mjonss
    • SET ROLEホストに大文字が含まれている場合に付与されたロールと一致しない問題を修正 #33061 @morgo
    • auto_incrementを持つ列を削除できない問題を修正 #34891 @Defined2014
    • SHOW CONFIGに削除された設定項目が表示される問題を修正 #34867 @morgo
    • SHOW DATABASES LIKE …が大文字と小文字を区別する問題を修正 #34766 @e1ijah1
    • SHOW TABLE STATUS LIKE ...が大文字小文字を区別する問題を修正 #7518 @likzn
    • max-index-length非厳格モードでエラーを報告する問題を修正 #34931 @e1ijah1
    • ALTER COLUMN ... DROP DEFAULTが機能しない問題を修正 #35018 @Defined2014
    • テーブル作成時に、デフォルト値と列の型が一致せず、自動的に修正されない問題を修正しました #34881 @Lloyd-Pottiger
    • mysql.columns_privを実行した後、 DROP USERテーブルのデータが同期的に削除されない問題を修正しました #35059 @lcwangchao
    • 一部のシステムのスキーマ内でテーブルを作成することを禁止することで、DDL ジャムの問題を修正します #35205 @tangenta
    • パーティション化されたテーブルをクエリした際に、場合によっては「index-out-of-range」および「non used index」エラーが報告される問題を修正しました #35181 @mjonss
    • INTERVAL expr unit + exprがエラーを報告する可能性がある問題を修正 #30253 @mjonss
    • トランザクション内で作成された一時テーブルが見つからないバグを修正 #35644 @djshow832
    • ENUM列に照合順序を設定する際に発生するpanic問題を修正しました #31637 @wjhuang2016
    • PDノードが1つダウンした際に、他のPDノードを再試行しないためにinformation_schema.TIKV_REGION_STATUSのクエリが失敗する問題を修正しました #35708 @tangenta
    • SHOW CREATE TABLE …ENUMの後にセットまたはSET character_set_results = GBK列を正しく表示できない問題 #31338 @tangenta
    • システム変数tidb_log_file_max_daystidb_configのスコープの誤りを修正 #35190 @morgo
    • SHOW CREATE TABLEの出力が、 ENUMまたはSET列の MySQL と互換性がない問題を修正します #36317 @Defined2014
    • テーブル作成時にLONG BYTE列の動作が MySQL と互換性がない問題を修正しました #36239 @Defined2014
    • auto_increment = xが一時テーブルに適用されない問題を修正 #36224 @djshow832
    • 列を同時に変更する際の誤ったデフォルト値を修正 #35846 @wjhuang2016
    • 可用性を向上させるために、異常な TiKV ノードにリクエストを送信しないようにします #34906 @sticnarf
    • LOAD DATA ステートメントで列リストが機能しない問題を修正 #35198 @SpadeA-Tang
    • 一部のシナリオで悲観的ロックが非一意のセカンダリインデックスに誤って追加される問題を修正 #36235 @ekexium
  • TiKV

    • 悲観的トランザクションでWriteConflictエラーを報告しないようにします #11612 @sticnarf
    • 非同期コミットが有効になっている場合に、悲観的トランザクションで発生する可能性のある重複コミット レコードを修正 #12615 @sticnarf
    • storage.api-version1から2に変更した際に TiKV がパニック #12600 @pingyu
    • TiKVとPD間のリージョンサイズ構成の不整合の問題を修正 #12518 @5kbpers
    • TiKV が PD クライアントに再接続し続ける問題を修正#12506#12827 @Connor1996
    • TiKVが空文字列の型変換時にパニックを起こす問題を修正 #12673 @wshwsh12
    • DATETIMEの値に小数が含まれている場合とZの値が含まれている場合に発生する時間解析エラーの問題を修正しました #12739 @gengliqi
    • Apply オペレーターが TiKV RocksDB に書き込む perf コンテキストが粗粒度である問題を修正 #11044 @LykxSassinator
    • バックアップ/インポート/ CDCの設定が無効な場合にTiKVが起動できない問題を修正 #12771 @3pointer
    • ピアが分割され、同時に破棄される際に発生する可能性のあるpanic問題を修正 #12825 @BusyJay
    • リージョンマージプロセスでソースピアがスナップショットによってログを追いついたときに発生する可能性のpanic問題を修正 #12663 @BusyJay
    • max_sample_size0に設定されている場合に統計分析で発生するpanic問題を修正 #11192 @LykxSassinator
    • Raft Engineが有効になっているときに暗号化キーがクリーンアップされない問題を修正 #12890 @tabokie
    • get_valid_int_prefix関数が TiDB と互換性がない問題を修正します。例えば、 FLOAT型がINTに誤って変換されていました #13045 @guo-shaoge
    • 新しいリージョンのコミットログ期間が長すぎるためにQPSが低下する問題を修正しました #13077 @Connor1996
    • リージョンのハートビートが中断された後、PD が TiKV に再接続しない問題を修正 #12934 @bufferflies
  • ツール

    • Backup & Restore (BR)

      • レート制限付きバックアップタスク完了後にBRがレート制限をリセットしない問題を修正 #31722 @MoCuishle28

貢献者

TiDBコミュニティの以下の貢献者の皆様に感謝申し上げます。

このページは役に立ちましたか?