TiDB v6.2.0 リリースノート

発売日:2022年8月23日

TiDB バージョン: 6.2.0-DMR

v6.2.0-DMR の主な新機能と改善点は次のとおりです。

新機能

SQL

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

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

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

    ユーザー文書 #4145 @ そよ風

可観測性

  • PD から TiDB ダッシュボードを分割する

    TiDB ダッシュボードは、PD から監視ノードに移動されます。これにより、PD に対する TiDB ダッシュボードの影響が軽減され、PD がより安定します。

    @ ホークソンジー

  • TiDB ダッシュボードに監視ページを追加

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

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

    ユーザー文書 #1381 @ YiniXu9506

  • TiDB ダッシュボードは視覚的な実行計画をサポートしています

    TiDB ダッシュボードは、SQL ステートメントと監視ページを通じて、視覚的な実行計画と基本的な診断サービスを提供します。この機能は、クエリ プランの各ステップを識別するための新鮮な新しい視点を提供します。したがって、クエリ実行プランのすべてのトレースをより直感的に学習できます。

    この機能は、複雑で大規模なクエリの実行を学習しようとしている場合に特に役立ちます。一方、各クエリ実行プランについて、TiDB ダッシュボードは実行の詳細を自動的に分析し、潜在的な問題を特定し、特定のクエリ プランの実行に必要な時間を短縮するための最適化の提案を提供します。

    ユーザー文書 #1224 @ 時間と運命

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

    ロックの競合が多すぎると、重大なパフォーマンスの問題が発生する可能性があり、ロックの競合を検出することは、このような問題をトラブルシューティングするために必要な方法です。 v6.2.0 より前の TiDB は、 INFORMATION_SCHEMA.DATA_LOCK_WAITSシステム ビューを使用してロックの競合関係を表示することをサポートしていましたが、オプティミスティック トランザクションの待機情報は表示しません。 TiDB v6.2.0 はDATA_LOCK_WAITSビューを拡張し、悲観的ロックによってブロックされた楽観的トランザクションをビューにリストします。この機能は、ユーザーがロックの競合を迅速に検出するのに役立ち、アプリケーションを改善するための基礎を提供することで、ロックの競合の頻度を減らし、全体的なパフォーマンスを向上させます。

    ユーザー文書 #34609 @ ロングファンソング

パフォーマンス

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

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

    ユーザー文書 #29932 @ 思い出す

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

    一部のシナリオでは、 EXISTSのクエリは最適な実行プランを持つことができず、長時間実行される可能性があります。 v6.2.0 では、オプティマイザーはこのようなシナリオの書き換えルールを追加し、クエリでSEMI_JOIN_REWRITEを使用してオプティマイザーに強制的にクエリを書き換えさせ、クエリのパフォーマンスを向上させることができます。

    ユーザー文書 #35323 @ ウィノロス

  • 新しいオプティマイザー ヒント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 では、1 つの列に対する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 @ 時間と運命

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

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

    ユーザー文書 #4631 @ グオシャオゲ

  • TiFlash は新しいバージョンのストレージ形式をサポートしています

    新しいストレージ形式は、同時実行性が高くワークロードが重いシナリオで GC によって引き起こされる高い CPU 使用率を軽減します。これにより、バックグラウンド タスクの IO トラフィックが大幅に削減され、高い同時実行性と重いワークロードの下での安定性が向上します。同時に、スペースの増幅とディスクの無駄を大幅に削減できます。

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

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

    ユーザー文書 #3594 @ ジェイソン・ファン @ リデジュ @ ジアキゾー

  • TiFlash は、複数の同時実行シナリオでデータ スキャンのパフォーマンスを最適化します (実験的)

    TiFlash は、同じデータの読み取り操作をマージすることにより、同じデータの重複読み取りを減らし、複数の同時タスクの場合のリソース オーバーヘッドを最適化して、データ スキャンのパフォーマンスを向上させます。同じデータが複数の同時タスクに関係している場合、同じデータを各タスクで個別に読み取る必要がある状況や、同じデータを同時に複数回読み取る必要がある状況を回避します。

    ユーザー文書 #5376 @ リン・ジンヘ

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

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

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

    ユーザー文書 #5252 @ ホンユニャン

安定性

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

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

    v6.2.0 以降、TiDB は、TiKV 構成ファイルを使用したバックグラウンド リクエストの CPU 使用率の設定をサポートします。これにより、TiKV での統計の自動収集などのバックグラウンド操作の CPU 使用率を制限し、バックグラウンド操作によるユーザー操作のリソース プリエンプションを回避します。極端な場合。これにより、データベースの操作が安定して効率的になります。

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

    ユーザー文書 #12503 @ ボーンチェンジャー

使いやすさ

  • TiKV は、コマンドライン フラグを使用した詳細な構成情報の一覧表示をサポートしています

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

    ユーザー文書 #12492 @ 栄光

MySQL の互換性

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

    v6.2.0 より前では、TiDB は単一の DDL 変更のみをサポートしているため、異種データベースを移行するときに互換性のない DDL 操作が発生し、複雑な DDL ステートメントを TiDB でサポートされている複数の単純な DDL ステートメントに変更するには、余分な労力が必要です。さらに、一部のユーザーは ORM フレームワークに依存して SQL でアセンブリを作成するため、SQL の非互換性が発生します。 v6.2.0 以降、TiDB は単一の SQL ステートメントで複数のスキーマ オブジェクトを変更することをサポートしています。これは、ユーザーが SQL を実装するのに便利で、使いやすさを向上させます。

    ユーザー文書 #14766 @ 接線

  • トランザクションでのセーブポイントの設定をサポート

    トランザクションは、データベースがACIDプロパティを保証する一連の連続した操作の論理的な集合です。一部の複雑なアプリケーション シナリオでは、トランザクション内の多くの操作を管理する必要があり、トランザクション内の一部の操作をロールバックする必要がある場合があります。 「セーブポイント」は、トランザクションの内部実装のための命名可能なメカニズムです。このメカニズムにより、トランザクション内のロールバック ポイントを柔軟に制御できるため、より複雑なトランザクションを管理し、多様なアプリケーションをより自由に設計できます。

    ユーザー文書 #6840 @ クレイジーcs520

データ移行

  • BR は、ユーザーおよび権限データの復元をサポートします

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

    ユーザー文書 #35395 @ D3ハンター

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

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

    • ディザスタ リカバリの RPO を 20 分未満に短縮します。
    • たとえば、エラー イベントの前にデータをロールバックすることによって、アプリケーションからの誤った書き込みのケースを処理します。
    • 履歴データの監査を実施し、法規制の要件を満たします。

    この機能には使用上の制限があります。詳細については、ユーザードキュメントを参照してください。

    ユーザー文書 #29501 @ ジョッカウ

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

    継続的なデータ検証を使用して、データ移行中にアップストリームのバイナリログとダウンストリームに書き込まれたデータを継続的に比較します。バリデーターは、不整合なデータや欠落したレコードなどのデータ例外を識別します。

    この機能は、一般的な完全なデータ検証スキームでの検証の遅延と過度のリソース消費の問題を解決します。

    ユーザー文書 #4426 @ D3ハンター @ ぶちゅとでごう

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

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

    #34275 @ WangLe1321

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

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

    ユーザー文書 #446 @ ぶちゅとでごう

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

    以前は、 TiDB Lightning (backend='local') の物理インポート モードがターゲット クラスターに大きな影響を与えていました。たとえば、移行中、PD グローバル スケジューリングは一時停止されます。したがって、以前の物理インポート モードは、初期データ インポートにのみ適しています。

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

    この機能を手動で構成する必要はありません。 TiDB クラスターが v6.1.0 以降のバージョンで、 TiDB Lightningが v6.2.0 以降のバージョンの場合、新しい物理インポート モードが自動的に有効になります。

    ユーザー文書 #35148 @ ゴズスキー

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

    • 「ローカル バックエンド」を「物理インポート モード」に置き換えます。
    • 「tidb バックエンド」を「論理インポート モード」に置き換えます。

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

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

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

    ユーザー文書 #11965 @ ピンギュ

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

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

    ユーザー文書 #6160 @ アスドンメン

互換性の変更

システム変数

変数名タイプを変更説明
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新規追加Fine Grained Shuffle が有効な場合、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新規追加この変数は、 SHOW [GLOBAL] VARIABLESの結果にnoop変数を表示するかどうかを制御します。
tidb_max_paging_size新規追加この変数は、コプロセッサーのページング要求プロセス中に行の最小数を設定するために使用されます。
tidb_min_paging_size新規追加この変数は、コプロセッサーのページング要求プロセス中に行の最大数を設定するために使用されます。
tidb_txn_commit_batch_size新規追加この変数は、TiDB が TiKV に送信するトランザクション コミット リクエストのバッチ サイズを制御するために使用されます。
tidb_enable_change_multi_schema削除しましたこの変数は、1 つのALTER TABLEステートメントで複数の列またはインデックスを変更できるかどうかを制御するために使用されます。
tidb_enable_outer_join_reorder修正済みこの変数は、TiDB の結合したテーブルの再配置 Reorder アルゴリズムが Outer Join をサポートするかどうかを制御します。 v6.1.0 では、デフォルト値はONです。これは、Join Reorder の Outer Join のサポートがデフォルトで有効になっていることを意味します。 v6.2.0 以降、デフォルト値はOFFです。これは、サポートがデフォルトで無効になっていることを意味します。

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

Configuration / コンフィグレーションファイルConfiguration / コンフィグレーションタイプを変更説明
TiDBフィードバック確率削除しましたこの構成は有効ではなくなり、推奨されません。
TiDBクエリ フィードバック制限削除しましたこの構成は有効ではなくなり、推奨されません。
TiKVサーバー.simplify-metrics新規追加この構成は、返されたモニタリング メトリックを単純化するかどうかを指定します。
TiKVquota.background-cpu-time新規追加この構成は、TiKV バックグラウンドが読み取りおよび書き込み要求を処理するために使用する CPU リソースのソフト制限を指定します。
TiKVquota.background-write-bandwidth新規追加この構成は、バックグラウンド トランザクションがデータを書き込む帯域幅のソフト リミットを指定します (現在は有効ではありません)。
TiKVquota.background-read-bandwidth新規追加この構成は、バックグラウンド トランザクションとコプロセッサがデータを読み取る帯域幅のソフト リミットを指定します (現在は有効ではありません)。
TiKVquota.enable-auto-tune新規追加この構成では、クォータの自動調整を有効にするかどうかを指定します。この構成項目が有効になっている場合、TiKV は、TiKV インスタンスの負荷に基づいて、バックグラウンド リクエストのクォータを動的に調整します。
TiKVrocksdb.enable-pipelined-commit削除しましたこの構成は有効ではなくなりました。
TiKVgc-マージ-リライト削除しましたこの構成は有効ではなくなりました。
TiKVログバックアップを有効にします新規追加この構成は、TiKV でログ バックアップを有効にするかどうかを制御します。
TiKVlog-backup.file-size-limit新規追加この構成では、ログ バックアップ データのサイズ制限を指定します。この制限に達すると、データは自動的に外部ストレージにフラッシュされます。
TiKVlog-backup.initial-scan-pending-memory-quota新規追加この構成は、インクリメンタル スキャン データの格納に使用されるキャッシュのクォータを指定します。
TiKVlog-backup.max-flush-interval新規追加この構成では、ログ バックアップでバックアップ データを外部ストレージに書き込む最大間隔を指定します。
TiKVlog-backup.initial-scan-rate-limit新規追加この構成では、ログ バックアップの増分データ スキャンでのスループットのレート制限を指定します。
TiKVlog-backup.num-threads新規追加この構成は、ログ バックアップで使用されるスレッドの数を指定します。
TiKVログバックアップ.一時パス新規追加この構成は、外部ストレージにフラッシュされる前にログ ファイルが書き込まれる一時パスを指定します。
PDreplication-mode.dr-auto-sync.wait-async-timeout削除しましたこの構成は有効にならず、削除されます。
PDreplication-mode.dr-auto-sync.wait-sync-timeout削除しましたこの構成は有効にならず、削除されます。
ティフラッシュstorage.format_version修正済みデフォルト値のformat_versionは、v6.2.0 以降のバージョンのデフォルト形式である4に変更され、書き込み増幅とバックグラウンド タスクのリソース消費が削減されます。
ティフラッシュprofile.default.dt_enable_read_thread新規追加この構成は、スレッド プールを使用してストレージ エンジンからの読み取り要求を処理するかどうかを制御します。デフォルト値はfalseです。
ティフラッシュprofile.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_version4から3にダウングレードできません。詳細については、 TiFlash v6.2.0 アップグレード ガイドを参照してください。
  • v6.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以降、データ復元時にパラメータ--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または実行プランをエクスポートできます。
  • 2 つの列がSHOW TABLE ... REGIONSステートメントに追加されます: SCHEDULING_CONSTRAINTSSCHEDULING_STATEは、SQL での配置のリージョンスケジュール制約と現在のスケジュール状態をそれぞれ示します。
  • TiDB v6.2.0 以降、RawKV のデータ変更をTiKV-CDC経由で取得できます。
  • トランザクションを指定されたセーブポイントにロールバックするためにROLLBACK TO SAVEPOINTが使用される場合、MySQL は指定されたセーブポイントの後にのみ保持されたロックを解放しますが、TiDB ペシミスティック トランザクションでは、TiDB は指定されたセーブポイントの後に保持されたロックをすぐには解放しません。代わりに、トランザクションがコミットまたはロールバックされると、TiDB はすべてのロックを解放します。
  • TiDB v6.2.0 以降、 SELECT tidb_version()ステートメントは Store タイプ (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 @ リクズンをサポート

    • 一部のシステム変数の検証チェックを追加#35048 @ モルゴ

    • 一部の型変換のエラー メッセージを最適化する#32447 @ ファンレンホー

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

    • もうSHOW TABLES/DATABASES LIKE …つの出力を MySQL 互換にします。出力の列名にはLIKEの値#35116 @ リクズンが含まれています

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

    • SHA-2 #35998 @ ウィルスディフェンダーを使用したパスワード ログインの検証速度の向上

    • 一部のログ出力を簡略化#36011 @ ドヴィーデン

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

    • 一部の演算子 (HashJoin、HashAgg、Update、Delete) のメモリ追跡の精度を最適化 ( #35634#35631#35635 @ wshwsh12 ) ( #34096 @ エキキシウム )

    • システム テーブルINFORMATION_SCHEMA.DATA_LOCK_WAITは、オプティミスティック トランザクション#34609 @ ロングファングソンのロック情報の記録をサポートします。

    • トランザクション#34456 @ ロングファンソングのモニタリング メトリックを追加します。

  • TiKV

    • gzip を使用したメトリクス応答の圧縮をサポートして、HTTP 本文のサイズを縮小します#12355 @ 栄光
    • Grafana ダッシュボード#12007 @ ケビン・シアンリウの TiKV パネルの読みやすさを改善
    • 適用オペレーター#12898 @ イーサフローのコミット パイプライン パフォーマンスを最適化する
    • RocksDB で同時に実行されるサブ圧縮操作の数を動的に変更するサポート ( rocksdb.max-sub-compactions ) #13145 @ イーサフロー
  • PD

    • リージョンの CPU 使用率の統計的次元をサポートし、Load Base Split #12063 @ ジャムポテトの使用シナリオを強化します
  • ティフラッシュ

  • ツール

    • バックアップと復元 (BR)

      • バックアップ データのディレクトリ構造を調整して、大規模なクラスター バックアップ#30087 @ MoCuishle28での S3 レート制限によって引き起こされるバックアップの失敗を修正します。
    • TiCDC

      • マルチリージョン シナリオ#5610 @ ヒックでランタイム コンテキストの切り替えによって発生するパフォーマンス オーバーヘッドを削減する

      • REDO ログのパフォーマンスを最適化し、メタとデータの不整合の問題を修正します ( #6011 @ チャールズ・チャン96 ) ( #5924 @ 照信雨 ) ( #6277 @ ヒック )

    • TiDB Lightning

      • EOF、Read index not ready、Coprocessor timeout #36674#36566 @ D3ハンターなどの再試行可能なエラーを追加します。
    • TiUP

      • TiUP を使用して新しいクラスターが展開されると、node-exporter は1.3.1バージョンを使用し、blackbox-exporter は0.21.1バージョンを使用します。これにより、さまざまなシステムや環境での展開が成功します。

バグの修正

  • TiDB

    • パーティション キーがクエリ条件で使用され、照合がクエリ パーティション テーブル#32749 @ ミヨンスのものと異なる場合、パーティションが誤ってプルーニングされる問題を修正します。
    • ホスト#33061 @ モルゴに大文字がある場合、付与されたロールにSET ROLEが一致しない問題を修正
    • auto_incrementの列をドロップできない問題を修正#34891 @ 定義済み2014
    • 削除された一部の構成アイテムがSHOW CONFIGに表示される問題を修正#34867 @ モルゴ
    • SHOW DATABASES LIKE …の大文字と小文字が区別される問題を修正#34766 @ e1ijah1
    • SHOW TABLE STATUS LIKE ...の大文字と小文字が区別される問題を修正#7518 @ リクズン
    • 非厳密モード#34931 @ e1ijah1max-index-lengthが依然としてエラーを報告する問題を修正します。
    • ALTER COLUMN ... DROP DEFAULTが動かない問題を修正#35018 @ 定義済み2014
    • テーブルを作成するときに、デフォルト値と列のタイプが一致せず、自動的に修正されない問題を修正します#34881 @ ロイド・ポティガー
    • DROP USER #35059 @ ルクァンチャオを実行した後、 mysql.columns_privテーブルのデータが同期的に削除されない問題を修正します。
    • 一部のシステムのスキーマ内でのテーブルの作成を禁止することで、DDL ジャムの問題を修正します#35205 @ 接線
    • パーティション化されたテーブルをクエリすると、場合によっては「インデックスが範囲外」および「未使用のインデックス」エラーが報告される可能性があるという問題を修正します#35181 @ ミヨンス
    • INTERVAL expr unit + exprがエラー#30253 @ ミヨンスを報告する可能性がある問題を修正します
    • トランザクション#35644 @ DJshow832で作成した後に一時テーブルが見つからない不具合を修正
    • 照合順序をENUM#31637 @ wjhuang2016に設定すると発生する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の出力がENUMまたはSET#36317 @ 定義済み2014の MySQL と互換性がないという問題を修正します
    • テーブルを作成するとき、 LONG BYTE列の動作が MySQL #36239 @ 定義済み2014と互換性がない問題を修正します。
    • 一時テーブル#36224 @ DJshow832auto_increment = xが有効にならない問題を修正
    • 列を同時に変更するときの間違ったデフォルト値を修正#35846 @ wjhuang2016
    • 可用性を向上させるために、異常な TiKV ノードにリクエストを送信しないようにする#34906 @ スティックナーフ
    • LOAD DATA ステートメントで列リストが機能しない問題を修正#35198 @ スペード・ア・タン
    • 一部のシナリオでペシミスティック ロックが一意でないセカンダリ インデックス#36235 @ エキキシウムに誤って追加される問題を修正します。
  • TiKV

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

    • バックアップと復元 (BR)

      • レート制限されたバックアップ タスク#31722 @ MoCuishle28を終了した後、BR がレート制限をリセットしない問題を修正します。

寄稿者

TiDB コミュニティの次の貢献者に感謝します。