TiDB 6.3.0 リリースノート

発売日:2022年9月30日

TiDB バージョン: 6.3.0-DMR

注記:

TiDB 6.3.0-DMR のドキュメントはアーカイブされたになりました。 PingCAP では、 最新のLTSバージョンの TiDB データベースを使用することをお勧めします。

クイックアクセス: クイックスタート | インストールパッケージ

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

  • TiKV は、SM4 アルゴリズムを使用した保存時の暗号化をサポートしています。
  • TiDB は、SM3 アルゴリズムを使用した認証をサポートしています。
  • CREATE USERおよびALTER USERステートメントはACCOUNT LOCK/UNLOCKオプションをサポートします。
  • JSON データ型と関数が一般提供 (GA) になりました。
  • TiDB はヌル認識アンチ結合をサポートしています。
  • TiDB は、より細かい粒度で実行時間メトリクスを提供します。
  • 範囲パーティションの定義を簡素化するために、新しい糖衣構文が追加されました。
  • 範囲 COLUMNS パーティショニングは、複数の列の定義をサポートします。
  • インデックス追加のパフォーマンスは 3 倍になります。
  • リソースを消費するクエリが軽量クエリの応答時間に及ぼす影響を 50% 以上削減します。

新機能

SQL

  • レンジ パーティションの定義を簡素化するために、新しい糖衣構文 (レンジ インターバル パーティショニング) を追加しました (実験的) #35683 @ むじょん

    TiDB は、レンジ パーティションを定義する新しい方法として間隔パーティショニングを提供します。すべてのパーティションを列挙する必要がないため、範囲パーティション化 DDL ステートメントの長さが大幅に短縮されます。構文は、元の Range パーティショニングの構文と同等です。

  • 範囲 COLUMNS パーティショニングは、複数の列#36636 @ むじょんの定義をサポートします。

    TiDB は範囲列によるパーティション化 (column_list)をサポートします。 column_listは単一列に限定されなくなりました。基本的な機能はMySQLと同じです。

  • 交換パーティション GA #35996 @ ymkzpxになります

  • TiFlash #5579 @ シーライズへのさらに 2 つのウィンドウ関数のプッシュダウンをサポート

    • LEAD()
    • LAG()
  • 軽量メタデータ ロックを提供して、DDL 変更時の DML 成功率を向上させます (実験的) #37275 @ wjhuang2016

    TiDB は、オンライン非同期スキーマ変更アルゴリズムを使用して、メタデータ オブジェクトの変更をサポートします。トランザクションが実行されると、トランザクションの開始時に対応するメタデータのスナップショットが取得されます。トランザクション中にメタデータが変更された場合、データの一貫性を確保するために、TiDB はInformation schema is changedエラーを返し、トランザクションはコミットに失敗します。この問題を解決するために、TiDB v6.3.0 ではオンライン DDL アルゴリズムにメタデータロックが導入されています。可能な限り DML エラーを回避するために、TiDB はテーブル メタデータの変更中に DML と DDL の優先順位を調整し、古いメタデータを持つ DML がコミットされるまで DDL の実行を待機させます。

  • インデックス追加のパフォーマンスを向上させ、DML トランザクションへの影響を軽減します (実験的) #35983 @ ベンジャミン2037

    インデックス作成時のバックフィルの速度を向上させるために、TiDB v6.3.0 では、 tidb_ddl_enable_fast_reorgシステム変数が有効な場合にADD INDEXおよびCREATE INDEX DDL 操作が高速化されます。この機能を有効にすると、インデックス追加のパフォーマンスが約 3 倍になります。

Security

  • TiKV は、保存時の暗号化のための SM4 アルゴリズムをサポートしています#13041 @ 嘉陽鄭

    保存時の TiKV 暗号化の場合はSM4アルゴリズムを追加します。保存時の暗号化を構成する場合、構成data-encryption-methodの値をsm4-ctrに設定することで SM4 暗号化容量を有効にできます。

  • TiDB は SM3 アルゴリズム#36192 @ Cbcウェストウルフによる認証をサポートします

    TiDB は、SM3 アルゴリズムに基づいた認証プラグインtidb_sm3_passwordを追加します。このプラグインを有効にすると、ユーザー パスワードは SM3 アルゴリズムを使用して暗号化され、検証されます。

  • TiDB JDBC は、SM3 アルゴリズム#25 @ 最後切歯による認証をサポートします。

    ユーザー パスワードの認証には、クライアント側のサポートが必要です。 JDBC は SM3 アルゴリズムをサポートしますなので、TiDB-JDBC 経由で SM3 認証を使用して TiDB に接続できるようになりました。

可観測性

  • TiDB は、SQL クエリ実行時間#34106 @ cfzjywxkの詳細なメトリクスを提供します。

    TiDB v6.3.0 は、 実行時間の詳細な観察の詳細なデータ メトリックを提供します。完全でセグメント化されたメトリクスを通じて、SQL クエリの主な消費時間を明確に把握でき、主要な問題を迅速に見つけてトラブルシューティングの時間を節約できます。

  • 遅いログとTRACEステートメントの出力を強化#34106 @ cfzjywxk

    TiDB v6.3.0 では、低速ログとTRACEの出力が強化されています。 TiDB の解析から KV RocksDB のディスクへの書き込みまでのフルリンク期間の SQL クエリを観察でき、診断機能がさらに強化されます。

  • TiDB ダッシュボードはデッドロック履歴情報を提供します#34106 @ cfzjywxk

    v6.3.0 以降、TiDB ダッシュボードはデッドロック履歴を提供します。 TiDB ダッシュボードで遅いログを確認し、一部の SQL ステートメントのロック待機時間が過度に長いことがわかった場合は、デッドロック履歴を確認して根本原因を特定できるため、診断が容易になります。

パフォーマンス

  • TiFlash はFastScan の使用方法を変更します (実験的) #5252 @ ホンユニャン

    v6.2.0 では、 TiFlashに FastScan 機能が導入されており、期待されるパフォーマンスの向上が得られますが、使用上の柔軟性が欠けています。したがって、v6.3.0 では、 TiFlash はFastScan を有効または無効にするFastScanの使用方法 : ALTER TABLE ... SET TIFLASH MODE ...構文を変更し、非推奨になりました。代わりに、システム変数tiflash_fastscanを使用して、FastScan を有効にするかどうかを簡単に制御できます。

    v6.2.0 から v6.3.0 にアップグレードすると、v6.2.0 のすべての FastScan 設定は無効になりますが、データの通常の読み取りには影響しません。変数tiflash_fastscanを設定する必要があります。 v6.2.0 以前のバージョンから v6.3.0 にアップグレードする場合、データの整合性を維持するために、FastScan 機能はデフォルトではすべてのセッションで有効になりません。

  • TiFlash は、複数の同時実行タスク#5376 @ ジンヘリンのシナリオでデータ スキャン パフォーマンスを最適化します。

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

    この機能は v6.2.0 では実験的であり、v6.3.0 で GA になります。

  • TiFlash はデータ レプリケーション#5237 @ ブリーズウィッシュのパフォーマンスを向上させます

    TiFlash は、 TiKV からのデータ複製にRaftプロトコルを使用します。 v6.3.0 より前は、大量のレプリカ データを複製するのに長い時間がかかることがよくありました。 TiDB v6.3.0 は、 TiFlashデータ レプリケーション メカニズムを最適化し、レプリケーション速度を大幅に向上させます。 BRを使用してデータをリカバリしたり、 TiDB Lightningを使用してデータをインポートしたり、新しいTiFlashレプリカを追加したりすると、 TiFlashレプリカをより迅速にレプリケートできます。 TiFlashを使用すると、よりタイムリーにクエリを実行できます。さらに、 TiFlashレプリカの数をスケールアップ、スケールダウン、または変更するときに、 TiFlashレプリカはより速く安全でバランスの取れた状態に到達します。

  • TiFlash は、個々のCOUNT(DISTINCT) #37202 @ 修正データベースの 3 段階の集約をサポートします

    TiFlash は、 COUNT(DISTINCT) 1 つだけ含むクエリの3段階集計への書き換えをサポートしています。これにより、同時実行性とパフォーマンスが向上します。

  • TiKV はログのリサイクル#214 @ リククスサシネーターをサポートします

    TiKV はRaft Engineのログファイルのリサイクルをサポートします。これにより、 Raftログの追加中のネットワーク ディスクのロングテールレイテンシーが短縮され、書き込みワークロード時のパフォーマンスが向上します。

  • TiDB は null 対応アンチ結合#37525 @ アレナトゥスをサポートします

    TiDB v6.3.0 では、新しい結合タイプNull 認識アンチ結合 (NAAJ)が導入されています。 NAAJ は、コレクション操作を処理するときに、コレクションが空であるかNULLであるかを認識できます。これにより、 IN= ANYなどの操作の実行効率が最適化され、SQL のパフォーマンスが向上します。

  • ハッシュ結合#35439 @ 懐かしいのビルド終了を制御するオプティマイザー ヒントを追加します。

    v6.3.0 では、TiDB オプティマイザーは、ハッシュ結合、そのプローブ終了、およびビルド終了を指定するための 2 つのヒントHASH_JOIN_BUILD()HASH_JOIN_PROBE()を導入します。オプティマイザーが最適な実行計画を選択できない場合、これらのヒントを使用して計画に介入できます。

  • セッションレベルの共通テーブル式 (CTE) インライン#36514 @ エルサ0520をサポート

    TiDB v6.2.0 では、CTE インラインを可能にするオプティマイザーにMERGEヒントが導入され、CTE クエリ結果のコンシューマがTiFlashで並列実行できるようになりました。 v6.3.0 では、セッション内で CTE インラインを許可するためにセッション変数tidb_opt_force_inline_cteが導入されました。これにより、使いやすさが大幅に向上します。

取引

  • 悲観的トランザクション#36579 @ エキシウムにおける一意制約のチェックの延期をサポート

    tidb_constraint_check_in_place_pessimisticシステム変数を使用して、TiDB が悲観的トランザクションで固有の制約をチェックするタイミングを制御できます。この変数はデフォルトでは無効になっています。変数が有効 ( ONに設定) の場合、TiDB は必要になるまで悲観的トランザクションでのロック操作と一意の制約チェックを延期するため、一括 DML 操作のパフォーマンスが向上します。

  • Read-Committed 分離レベル#36812 @ トンスネークリンで TSO をフェッチする方法を最適化します。

    Read-Committed 分離レベルでは、TSO のフェッチ方法を制御するためにシステム変数tidb_rc_write_check_tsが導入されています。プラン キャッシュ ヒットの場合、TiDB は TSO をフェッチする頻度を減らすことでバッチ DML ステートメントの実行効率を向上させ、バッチでタスクを実行する実行時間を短縮します。

安定性

  • リソースを消費するクエリが軽量クエリの応答時間に及ぼす影響を軽減します#13313 @ グロルフ

    リソースを消費するクエリと軽量のクエリが同時に実行されると、軽量のクエリの応答時間に影響します。この場合、トランザクション サービスの品質を確保するために、軽量のクエリが最初に TiDB によって処理されることが期待されます。 v6.3.0 では、TiKV は読み取りリクエストのスケジューリング メカニズムを最適化し、各ラウンドでのリソースを消費するクエリの実行時間が期待どおりになるようにします。これにより、リソースを消費するクエリが軽量クエリの応答時間に与える影響が大幅に軽減され、混合ワークロード シナリオで P99レイテンシーが 50% 以上削減されます。

  • 統計が古くなった場合に統計をロードするデフォルトのポリシーを変更します#27601 @ シュイファングリーンアイズ

    v5.3.0 では、TiDB は統計が古くなったときのオプティマイザーの動作を制御するシステム変数tidb_enable_pseudo_for_outdated_statsを導入しました。デフォルト値はONで、これは古いバージョンの動作を維持することを意味します。SQL ステートメントに関係するオブジェクトの統計が古い場合、オプティマイザは統計 (テーブルの合計行数以外) が古いものであるとみなします。より信頼性が高く、代わりに疑似統計を使用します。実際のユーザー シナリオのテストと分析の後、v6.3.0 以降、デフォルト値のtidb_enable_pseudo_for_outdated_statsOFFに変更されます。統計が古くなっても、オプティマイザはテーブル上の統計を引き続き使用するため、実行計画がより安定します。

  • Titan を無効化すると GA @ タボキーになります

    オンライン TiKV ノードの場合はタイタンを無効にするを行うことができます。

  • GlobalStats の準備ができていない場合はstaticパーティション プルーニングを使用する#37535 @ イーサール

    dynamic pruningが有効な場合、オプティマイザはグローバル統計に基づいて実行プランを選択します。 GlobalStats が完全に収集される前に、疑似統計を使用すると、パフォーマンスの低下が発生する可能性があります。 v6.3.0 では、GlobalStats が収集される前に動的プルーニングを有効にした場合、この問題はstaticモードを維持することで解決されます。 TiDB は、GlobalStats が収集されるまでstaticモードのままです。これにより、パーティション プルーニング設定を変更するときのパフォーマンスの安定性が確保されます。

使いやすさ

  • SQL ベースのデータ配置ルールとTiFlashレプリカ間の競合に対処します#37171 @ ルクワンチャオ

    TiDB v6.0.0 はSQLベースのデータ配置ルールを提供します。ただし、実装上の問題により、この機能はTiFlashレプリカと競合します。 TiDB v6.3.0 は実装メカニズムを最適化し、SQL ベースのデータ配置ルールとTiFlashの間の競合を解決します。

MySQLの互換性

  • 4 つの正規表現関数( REGEXP_INSTR() REGEXP_REPLACE()およびREGEXP_SUBSTR() #23881 @ ウィンドトーカーのサポートREGEXP_LIKE()追加することにより、MySQL 8.0 の互換性が向上しました。

    MySQL との互換性の詳細については、 MySQL との正規表現の互換性を参照してください。

  • CREATE USERおよびALTER USERステートメントは、 ACCOUNT LOCK/UNLOCKオプション#37051 @ Cbcウェストウルフをサポートします。

    CREATE USERステートメントを使用してユーザーを作成する場合、 ACCOUNT LOCK/UNLOCKオプションを使用して、作成したユーザーをロックするかどうかを指定できます。ロックされたユーザーはデータベースにログインできません。

    ALTER USERステートメントのACCOUNT LOCK/UNLOCKオプションを使用して、既存のユーザーのロック状態を変更できます。

  • JSON データ型と JSON関数はGA #36993 @ ションジウェイになります

    JSON は、多くのプログラムで採用されている一般的なデータ形式です。 TiDB は、以前のバージョンから実験的機能としてJSONのサポートを導入しており、MySQL の JSON データ型および一部の JSON関数と互換性があります。

    TiDB v6.3.0 では、JSON データ型と関数がGA になり、TiDB のデータ型が強化され、 式インデックス生成された列での JSON関数の使用がサポートされ、TiDB と MySQL の互換性がさらに向上しました。

バックアップと復元

  • PITR はバックアップ ストレージとしてGCS と Azure Blob Storage @ ジョッカウをサポートします

    TiDB クラスターが Google Cloud または Azure にデプロイされている場合は、クラスターを v6.3.0 にアップグレードした後に PITR 機能を使用できます。

  • BR はAWS S3 オブジェクト ロック#13442 @ 3ポインターをサポートします

    S3 オブジェクトロックを有効にすることで、AWS 上のバックアップ データが改ざんまたは削除されないように保護できます。

データ移行

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

  • TiCDC は、地理的に分散された複数のデータ ソース#5301 @ スドジからデータを複製できる展開トポロジをサポートします。

    v6.3.0 以降、単一の TiDB クラスターから複数の地理的に分散されたデータ システムへのデータの複製をサポートするには、IDC ごとにデータを複製する必要がTiCDC を複数の IDC に導入できますます。この機能は、地理的に分散されたデータ レプリケーションおよび展開トポロジの機能を提供するのに役立ちます。

  • TiCDC は、アップストリームとダウンストリーム (同期ポイント) #6977 @ 東門の間でスナップショットの一貫性を維持することをサポートします。

    災害復旧のためのデータ複製のシナリオでは、ダウンストリーム スナップショットがアップストリーム スナップショットと一貫性を保つように、TiCDC はダウンストリームデータのスナップショットを定期的に維持するをサポートします。この機能により、TiCDC は読み取りと書き込みが分離されるシナリオをより適切にサポートし、コストの削減に役立ちます。

  • TiCDC はグレースフル アップグレード#4757 @ オーバーヴィーナス @ 3エースショーハンドをサポートします

    TiCDC がTiUP (>=v1.11.0) またはTiDB Operator (>=v1.3.8) を使用してデプロイされている場合、TiCDC クラスターを正常にアップグレードできます。アップグレード中のデータ レプリケーションのレイテンシーは30 秒程度に抑えられます。これにより安定性が向上し、TiCDC がレイテンシの影響を受けやすいアプリケーションをより適切にサポートできるようになります。

互換性の変更

システム変数

変数名種類の変更説明
default_authentication_plugin修正済み新しいオプションtidb_sm3_passwordを追加します。この変数をtidb_sm3_passwordに設定すると、暗号化アルゴリズムとして SM3 が使用されます。
sql_require_primary_key新しく追加されたテーブルに主キーがあるという要件を強制するかどうかを制御します。この変数を有効にした後、主キーなしでテーブルを作成または変更しようとすると、エラーが発生します。
tidb_adaptive_closest_read_threshold新しく追加されたtidb_replica_readclosest-adaptiveに設定されている場合、TiDBサーバーがTiDBサーバーと同じリージョン内のレプリカに読み取りリクエストを送信することを優先するしきい値を制御します。
tidb_constraint_check_in_place_pessimistic新しく追加されたTiDB が悲観的トランザクションで固有の制約をチェックするタイミングを制御します。
tidb_ddl_disk_quota新しく追加されたtidb_ddl_enable_fast_reorgが有効な場合にのみ有効になります。インデックス作成時のバックフィル中のローカルstorageの使用制限を設定します。
tidb_ddl_enable_fast_reorg新しく追加されたインデックス作成時のバックフィルの速度を向上させるために、 ADD INDEXおよびCREATE INDEX DDL 操作の高速化を有効にするかどうかを制御します。
tidb_ddl_flashback_concurrency新しく追加されたflashback clusterの同時実行性を制御します。この変数によって制御される機能は、TiDB v6.3.0 では完全には機能しません。デフォルト値を変更しないでください。
tidb_enable_exchange_partition廃止されましたexchange partitions with tables機能を有効にするかどうかを制御します。デフォルト値はONです。つまり、デフォルトでexchange partitions with tablesが有効になります。
tidb_enable_foreign_key新しく追加されたFOREIGN KEY機能を有効にするかどうかを制御します。この変数によって制御される機能は、TiDB v6.3.0 では完全には機能しません。デフォルト値を変更しないでください。
tidb_enable_general_plan_cache新しく追加された一般プラン キャッシュ機能を有効にするかどうかを制御します。この変数によって制御される機能は、TiDB v6.3.0 では完全には機能しません。デフォルト値を変更しないでください。
tidb_enable_metadata_lock新しく追加されたメタデータロック機能を有効にするかどうかを指定します。
tidb_enable_null_aware_anti_join新しく追加された特別な集合演算子NOT INおよび!= ALLによって導かれるサブクエリによってアンチ結合が生成される場合に、TiDB が Null-Aware Hash Join を適用するかどうかを制御します。
tidb_enable_pseudo_for_outdated_stats修正済み統計が古い場合に、テーブルの統計を使用する際のオプティマイザーの動作を制御します。デフォルト値はONからOFFに変更されます。これは、このテーブルの統計が古くても、オプティマイザはテーブルの統計を引き続き使用することを意味します。
tidb_enable_rate_limit_action修正済みデータを読み取るオペレータの動的メモリ制御機能を有効にするかどうかを制御します。この変数がONに設定されている場合、メモリ使用量はtidb_mem_quota_queryの制御下にない可能性があります。したがって、デフォルト値はONからOFFに変更されます。
tidb_enable_tiflash_read_for_write_stmt新しく追加されたSQL 書き込みステートメントの読み取りリクエストをTiFlashにプッシュダウンするかどうかを制御します。この変数によって制御される機能は、TiDB v6.3.0 では完全には機能しません。デフォルト値を変更しないでください。
tidb_enable_unsafe_substitute新しく追加された式を安全でない方法で生成された列に置き換えるかどうかを制御します。
tidb_general_plan_cache_size新しく追加された一般プラン キャッシュによってキャッシュできる実行プランの最大数を制御します。この変数によって制御される機能は、TiDB v6.3.0 では完全には機能しません。デフォルト値を変更しないでください。
tidb_last_plan_replayer_token新しく追加された読み取り専用で、現在のセッションの最後のPLAN REPLAYER DUMPの実行結果を取得するために使用されます。
tidb_max_paging_size新しく追加されたこの変数は、コプロセッサーのページング要求プロセス中に最小行数を設定するために使用されます。
tidb_opt_force_inline_cte新しく追加されたセッション全体の共通テーブル式 (CTE) をインライン化するかどうかを制御します。デフォルト値はOFFです。これは、CTE のインライン化がデフォルトでは強制されないことを意味します。
tidb_opt_three_stage_distinct_agg新しく追加されたMPP モードでCOUNT(DISTINCT)集計を 3 段階の集計に書き換えるかどうかを指定します。デフォルト値はONです。
tidb_partition_prune_mode修正済み動的プルーニングを有効にするかどうかを指定します。 v6.3.0 以降、デフォルト値はdynamicに変更されます。
tidb_rc_read_check_ts修正済みタイムスタンプの取得を最適化するために使用されます。これは、読み取りと書き込みの競合がまれな読み取りコミット分離レベルのシナリオに適しています。この機能は特定のサービス ワークロードを対象としているため、他のシナリオではパフォーマンスの低下を引き起こす可能性があります。このため、v6.3.0 以降、この変数のスコープはGLOBAL \| SESSIONからINSTANCEに変更されます。つまり、特定の TiDB インスタンスに対してこの機能を有効にすることができます。
tidb_rc_write_check_ts新しく追加されたタイムスタンプの取得を最適化するために使用され、悲観的トランザクションの RC 分離レベルでポイント書き込み競合がほとんどないシナリオに適しています。この変数を有効にすると、point-write ステートメントの実行中にグローバル タイムスタンプを取得することによってもたらされるレイテンシーとオーバーヘッドを回避できます。
tiflash_fastscan新しく追加されたFastScan を有効にするかどうかを制御します。 ファストスキャンが有効になっている ( ONに設定されている) 場合、 TiFlash はより効率的なクエリ パフォーマンスを提供しますが、クエリ結果の精度やデータの一貫性は保証されません。

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

コンフィグレーションファイルコンフィグレーション種類の変更説明
TiDBtemp-dir新しく追加されたTiDB が一時データを保存するために使用するファイル システムの場所を指定します。機能が TiDB ノードのローカルstorageを必要とする場合、TiDB は対応する一時データをこの場所に保存します。デフォルト値は/tmp/tidbです。
TiKVauto-adjust-pool-size新しく追加されたスレッド プール サイズを自動的に調整するかどうかを制御します。有効にすると、現在の CPU 使用率に基づいて UnifyReadPool スレッド プール サイズを自動的に調整することで、TiKV の読み取りパフォーマンスが最適化されます。
TiKVdata-encryption-method修正済み新しい値のオプションsm4-ctrを導入します。この設定項目をsm4-ctrに設定すると、データは SM4 を使用して暗号化されて保存されます。
TiKVenable-log-recycle新しく追加されたRaft Engineで古いログ ファイルをリサイクルするかどうかを決定します。これを有効にすると、論理的にパージされたログ ファイルがリサイクル用に予約されます。これにより、書き込みワークロードのロングテールレイテンシーが短縮されます。この設定項目は、 フォーマットバージョン >= 2 の場合にのみ使用できます。
TiKVformat-version新しく追加されたRaft Engineのログ ファイルのバージョンを指定します。 v6.3.0 より前の TiKV のデフォルトのログ ファイル バージョンは1です。ログ ファイルは TiKV v6.1.0 以上で読み取ることができます。 TiKV v6.3.0 以降のデフォルトのログ ファイル バージョンは2です。 TiKV v6.3.0 以降では、ログ ファイルを読み取ることができます。
TiKVlog-backup.enable修正済みv6.3.0 以降、デフォルト値はfalseからtrueに変更されます。
TiKVlog-backup.max-flush-interval修正済みv6.3.0 以降、デフォルト値は5minから3minに変更されます。
PD診断を有効にする新しく追加された診断機能を有効にするかどうかを制御します。デフォルト値はfalseです。
TiFlashdt_enable_read_thread廃止されましたv6.3.0 以降、この設定項目は非推奨になりました。スレッド プールは、デフォルトでstorageエンジンからの読み取りリクエストを処理するために使用され、無効にすることはできません。
DMsafe-mode-duration新しく追加された自動セーフモードの継続時間を指定します。
TiCDCenable-sync-point新しく追加された同期ポイント機能を有効にするかどうかを指定します。
TiCDCsync-point-interval新しく追加されたSyncpoint がアップストリームとダウンストリームのスナップショットを調整する間隔を指定します。
TiCDCsync-point-retention新しく追加された同期ポイントによってダウンストリーム テーブルにデータが保持される期間を指定します。この期間を超えると、データはクリーンアップされます。
TiCDCsink-uri.memory廃止されましたmemoryソートは非推奨になりました。いかなる状況でも使用することはお勧めできません。

その他

  • ログ バックアップは、バックアップstorageとして GCS および Azure Blob Storage をサポートします。
  • ログ バックアップがexchange partition DDL と互換性を持つようになりました。
  • 以前高速スキャン有効にするために使用されていた SQL ステートメントALTER TABLE ...SET TiFLASH MODE ...非推奨になり、システム変数tiflash_fastscanに置き換えられます。 v6.2.0 から v6.3.0 にアップグレードすると、v6.2.0 のすべての FastScan 設定は無効になりますが、データの通常の読み取りには影響しません。この場合、変数tiflash_fastscanを設定して FastScan を有効または無効にする必要があります。以前のバージョンから v6.3.0 にアップグレードする場合、データの一貫性を保つために、すべてのセッションに対して FastScan 機能がデフォルトで有効になりません。
  • Linux AMD64アーキテクチャでTiFlashを導入するには、CPU が AVX2 命令セットをサポートしている必要があります。 cat /proc/cpuinfo | grep avx2に出力があることを確認します。 Linux ARM64アーキテクチャでTiFlashを導入するには、CPU が ARMv8 命令セットアーキテクチャをサポートしている必要があります。 cat /proc/cpuinfo | grep 'crc32' | grep 'asimd'に出力があることを確認します。命令セット拡張を使用することにより、TiFlash のベクトル化エンジンはより優れたパフォーマンスを実現できます。
  • TiDB で動作する HAProxy の最小バージョンは v1.5 になりました。 v1.5 と v2.1 の間の HAProxy バージョンでは、 post-41構成オプションをmysql-checkに設定する必要があります。 HAProxy v2.2 以降を使用することをお勧めします。

削除された機能

v6.3.0 以降、TiCDC は Pulsar シンクの構成をサポートしなくなりました。 StreamNative が提供するコップ代替として使用できます。

改善点

  • TiDB

    • TiDB は、テーブルの存在をチェックするときにターゲット テーブル名の大文字と小文字を区別しないようになりました#34610 @ ティエンチャイアマオ
    • init_connect #35324 @ Cbcウェストウルフの値を設定するときに解析チェックを追加することで、MySQL の互換性を向上させます。
    • 新しい接続に対して生成されるログ警告を改善#34964 @ ションジウェイ
    • DDL 履歴ジョブをクエリするための HTTP API を最適化し、 start_job_idパラメーター#35838 @ ティエンチャイアマオのサポートを追加します。
    • JSON パスの構文が間違っている場合にエラーを報告する#22525 #34959 @ ションジウェイ
    • 偽共有の問題#37641 @ ゲンリチを修正して、結合操作のパフォーマンスを向上させます。
    • PLAN REPLAYERを使用して一度に複数の SQL ステートメントの実行計画情報をエクスポートすることをサポートします。これにより、トラブルシューティングがより効率的になります#37798 @ イーサール
  • TiKV

    • 1 つのピアが到達不能になった後にRaftstore が大量のメッセージをブロードキャストすることを避けるためのunreachable_backoff項目の設定をサポート#13054 @ 5kbps
    • TSO サービス#12794 @ ピンギュのフォールト トレランスを向上します。
    • RocksDB で同時に実行されるサブコンパクション操作の数の動的変更をサポート ( rocksdb.max-sub-compactions ) #13145 @ エーテルフロー
    • 空のリージョン#12421 @ タボキーをマージするパフォーマンスを最適化します。
    • より多くの正規表現関数をサポート#13483 @ ゲンリキ
    • CPU 使用率#13313 @ グロルフに基づいてスレッド プール サイズを自動的に調整するサポート
  • PD

    • TiDB ダッシュボード#5366 @ イニシュ9506での TiKV IO MBps メトリクスのクエリを改善しました。
    • TiDB ダッシュボードの URL をmetricsからmonitoring #5366 @ イニシュ9506に変更します。
  • TiFlash

  • ツール

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

      • PITR はログ バックアップで生成された小さなファイルをマージできるため、バックアップ ファイルの数が大幅に削減されます#13232 @ レヴルス
      • PITR は、復元後のアップストリーム クラスター構成に基づいたTiFlashレプリカの数の自動構成をサポートします#37208 @ ユジュンセン
    • TiCDC

    • TiDB データ移行 (DM)

      • データソース#6448 @ ランス6716としての MySQL 8.0 との互換性の向上
      • 「無効な接続」が発生したときに DDL を非同期に実行することで DDL を最適化します#4689 @ lyzx2001
    • TiDB Lightning

      • S3 外部storageURL のクエリ パラメータを追加して、特定のロール#36891 @ dsダシュンを引き受けることで別のアカウントの S3 データへのアクセスをサポートします。

バグの修正

  • TiDB

    • PREPAREステートメント#35784 @ ルクワンチャオで権限チェックがスキップされる問題を修正
    • システム変数tidb_enable_noop_variableWARN #36647 @ ルクワンチャオに設定できる問題を修正
    • 式インデックスが定義されている場合、 INFORMAITON_SCHEMA.COLUMNSテーブルのORDINAL_POSITION列が正しくない可能性がある問題を修正します#31200 @ bb7133
    • タイムスタンプがMAXINT32 #31585 @ bb7133より大きい場合に TiDB がエラーを報告しない問題を修正
    • エンタープライズプラグイン使用時にTiDBサーバーが起動できない問題を修正#37319 @ ゼボックス
    • SHOW CREATE PLACEMENT POLICY #37526 @ ゼボックスの誤った出力を修正
    • 一時テーブル#37201 @ ルクワンチャオでの予期しない動作EXCHANGE PARTITIONを修正
    • INFORMATION_SCHEMA.TIKV_REGION_STATUSをクエリすると間違った結果 @ ジムララが返される問題を修正します。
    • ビューに対するEXPLAINクエリが権限#34326 @ ホーキングレイをチェックしない問題を修正します。
    • JSON null NULL #37852 @ ヤンケオに更新できない問題を修正
    • DDL ジョブのrow_countが不正確である問題を修正#25968 @ 定義2014
    • FLASHBACK TABLE #37386 @ ティエンチャイアマオが正常に動作しない問題を修正
    • 一般的な MySQL プロトコル#36731 @ ドヴィーデンpreparedステートメント フラグの処理に失敗する問題を修正
    • 一部の極端なケースで起動時に表示される可能性がある不正な TiDB ステータスの問題を修正します#36791 @ ゼボックス
    • INFORMATION_SCHEMA.VARIABLES_INFOがセキュリティ強化モード (SEM) #37586 @ Cbcウェストウルフに準拠していない問題を修正
    • UNION #31678 @ CBCウエストウルフを使用したクエリで文字列から文字列へのキャストが失敗する問題を修正
    • TiFlash #37254 @ wshwsh12のパーティション化されたテーブルで動的モードを有効にしたときに発生する間違った結果を修正しました。
    • TiDB のバイナリ文字列と JSON 間のキャストと比較が MySQL #31918 #25053 @ ヤンケオと互換性がない問題を修正
    • TiDB のJSON_OBJECTAGGJSON_ARRAYAGGがバイナリ値#25053 @ ヤンケオで MySQL と互換性がない問題を修正
    • JSON の不透明な値間の比較でpanic#37315 @ ヤンケオが発生する問題を修正
    • JSON集計関数#37287 @ ヤンケオで単精度浮動小数点数が使用できない問題を修正
    • UNION演算子が予期しない空の結果#36903 @ ティエンチャイアマオを返す可能性がある問題を修正します。
    • castRealAsTime式の結果が MySQL #37462 @ 孟新9014と一致しない問題を修正
    • 悲観的DML 操作により、一意でないインデックス キー#36235 @ エキシウムがロックされる問題を修正します。
    • auto-commit変更がトランザクションのコミット動作#36581 @ cfzjywxkに影響を与える問題を修正
    • DML エグゼキュータを使用したEXPLAIN ANALYZEステートメントが、トランザクションのコミットが完了する前に結果を返す可能性がある問題を修正します#37373 @ cfzjywxk
    • 場合によっては UPDATE ステートメントが誤って投影を削除し、 Can't find columnエラー#37568 @ アイリンキッドが発生する問題を修正します。
    • 結合したテーブルの再配置操作により誤って外部結合条件#37238 @ アイリンキッドがプッシュダウンされる問題を修正します。
    • 一部のパターンのINおよびNOT INサブクエリでCan't find columnエラー#37032 @ アイリンキッドが報告される問題を修正します。
    • UPDATEステートメントに共通テーブル式 (CTE) #35758 @ アイリンキッドが含まれる場合にCan't find columnが報告される問題を修正
    • 間違ったPromQL #35856 @ 定義2014を修正
  • TiKV

    • リージョンハートビートが中断された後、PD が TiKV に再接続しない問題を修正#12934 @ バッファフライ
    • Raftstore がビジー#13160 @ 5kbpsの場合、リージョンが重複する可能性がある問題を修正
    • PD クライアントがデッドロックを引き起こす可能性がある問題を修正#13191 @ バッファフライ #12933 @ バートン秦
    • 暗号化が無効になっている場合に TiKV がpanicになる可能性がある問題を修正#13081 @ 嘉陽鄭
    • ダッシュボード#13086 @ グロルフUnified Read Pool CPUの間違った式を修正
    • TiKV インスタンスが隔離されたネットワーク環境#12966 @ コスベンにある場合、TiKV サービスが数分間利用できなくなる問題を修正します。
    • TiKV が誤ってPessimisticLockNotFoundエラー#13425 @ スティックナーフを報告する問題を修正
    • 状況によっては PITR によってデータ損失が発生する可能性がある問題を修正#13281 @ ユジュンセン
    • 長い悲観的トランザクション#13304 @ ユジュンセンがあるときにチェックポイントが進められない問題を修正
    • TiKV が JSON #13417 @ ヤンケオの datetime 型 ( DATETIMEDATETIMESTAMPTIME ) とSTRING型を区別しない問題を修正します。
    • JSON bool と他の JSON 値#13386 #37481 @ ヤンケオの比較における MySQL との非互換性を修正
  • PD

    • enable-forwardingが有効になっている場合に gRPC がエラーを不適切に処理する問題によって引き起こされる PD パニックを修正#5373 @ バッファフライ
    • 異常なリージョンにより PDpanic#5491 @ ノールーシュが発生する可能性がある問題を修正
    • TiFlash学習者のレプリカが作成されないことがある問題を修正#5401 @ フンドゥンDM
  • TiFlash

    • クエリがキャンセルされたときにウィンドウ関数によってTiFlashがクラッシュする可能性がある問題を修正#5814 @ シーライズ
    • CAST(value AS DATETIME)の間違ったデータ入力によりTiFlash sys CPU #5097 @ xzhangxian1008のパフォーマンスが高くなる問題を修正
    • CAST(Real/Decimal AS time)の結果がMySQL #3779 @ 孟新9014と矛盾する問題を修正
    • storage内の一部の古いデータが削除できない問題を修正#5570 @ ジェイ・ソン・ファン
    • ページ GC がテーブル#5697 @ ジェイ・ソン・ファンの作成をブロックする可能性がある問題を修正
    • NULL#5859 @ ジェイ・ソン・ファンを含む列でプライマリ インデックスを作成した後に発生するpanicを修正します。
  • ツール

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

      • チェックポイントの情報が古くなる可能性がある問題を修正#36423 @ ユジュンセン
      • 復元中に同時実行数の設定が大きすぎるため、リージョンのバランスが取れない問題を修正#37549 @ 3ポインター
      • TiCDC がクラスター#37822 @ ユジュンセンに存在する場合に、ログ バックアップ チェックポイント TS がスタックする可能性がある問題を修正します。
      • 外部storage#37469 @ モクイシュル28の認証キーに特殊文字が存在する場合、バックアップと復元が失敗する可能性がある問題を修正
    • TiCDC

      • TiCDC が grpc サービス#6458 @ クレラックスで間違った PD アドレスに対して不正確なエラーを返す問題を修正
      • cdc cause cli changefeed listコマンドが失敗した変更フィード#6334 @ 東門を返さない問題を修正します。
      • チェンジフィードの初期化が失敗した場合に TiCDC が利用できない問題を修正#6859 @ 東門
    • TiDBBinlog

      • コンプレッサーが gzip #1152 @ リチュンジュに設定されている場合、 Drainer がリクエストをPumpに正しく送信できない問題を修正
    • TiDB データ移行 (DM)

      • DM がSpecified key was too longエラー#5315 @ ランス6716を報告する問題を修正
      • リレーがエラー#6193 @ ランス6716に遭遇したときの goroutine リークを修正
      • collation_compatible"strict"に設定すると、DM が重複した照合順序#6832 @ ランス6716を含む SQL を生成する可能性がある問題を修正します。
      • DM-worker ログ#6628 @ lyzx2001に表示される警告メッセージ「 binlog status_vars からタイムゾーンを取得するときにエラーが見つかりました」の表示を減らします。
      • レプリケーション#7028 @ ランス6716中に latin1 データが破損する可能性がある問題を修正
    • TiDB Lightning

      • TiDB Lightning がParquet ファイル#36980 @ D3ハンターでスラッシュ、数字、または非 ASCII 文字で始まる列をサポートしない問題を修正します。

貢献者

TiDB コミュニティの以下の貢献者に感謝いたします。

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

Playground
新規
登録なしで TiDB の機能をワンストップでインタラクティブに体験できます。
製品
TiDB Cloud
TiDB
価格
PoC お問い合わせ
エコシステム
TiKV
TiFlash
OSS Insight
© 2024 PingCAP. All Rights Reserved.
Privacy Policy.