TiDB 5.4 リリースノート

発売日:2022年2月15日

TiDB バージョン: 5.4.0

v5.4 の主な新機能または改善点は次のとおりです。

  • GBK文字セットをサポート
  • 複数の列のインデックスのフィルタリング結果をマージする、インデックス マージを使用したデータへのアクセスのサポート
  • セッション変数を使用した古いデータの読み取りのサポート
  • 統計を収集するための構成の永続化のサポート
  • TiKV のログstorageエンジンとしてRaft Engineの使用をサポート (実験的)
  • クラスターに対するバックアップの影響を最適化する
  • Azure Blob storage をバックアップstorageとして使用するサポート
  • TiFlashと MPP エンジンの安定性とパフォーマンスを継続的に改善します。
  • TiDB Lightningにスイッチを追加して、データを含む既存のテーブルへのインポートを許可するかどうかを決定します。
  • 継続的プロファイリング機能を最適化する (実験的)
  • TiSpark はユーザーの識別と認証をサポートします

互換性の変更

注記:

以前の TiDB バージョンから v5.4.0 にアップグレードする場合、すべての中間バージョンの互換性変更ノートを知りたい場合は、対応するバージョンのリリースノートを確認できます。

システム変数

変数名種類の変更説明
tidb_enable_column_tracking新しく追加されたTiDB がPREDICATE COLUMNSを収集できるようにするかどうかを制御します。デフォルト値はOFF.
tidb_enable_paging新しく追加されたIndexLookUpオペレーターでコプロセッサー要求を送信するためにページングの方法を使用するかどうかを制御します。デフォルト値はOFFです。
IndexLookupLimitを使用し、そのLimitIndexScanにプッシュダウンできない読み取りクエリの場合、読み取りクエリのレイテンシーが長くなり、TiKV のunified read poolの CPU 使用率が高くなる可能性があります。このような場合、 Limit演算子は少量のデータセットのみを必要とするため、 tidb_enable_paging ONに設定すると、TiDB が処理するデータが減り、クエリのレイテンシーとリソースの消費が削減されます。
tidb_enable_top_sql新しく追加されたTop SQL機能を有効にするかどうかを制御します。デフォルト値はOFFです。
tidb_persist_analyze_options新しく追加されたANALYZE 構成永続化機能を有効にするかどうかを制御します。デフォルト値はONです。
tidb_read_staleness新しく追加された現在のセッションで読み取ることができる履歴データの範囲を制御します。デフォルト値は0です。
tidb_regard_null_as_point新しく追加されたオプティマイザがインデックス アクセスの接頭辞条件として NULL 等価性を含むクエリ条件を使用できるかどうかを制御します。
tidb_stats_load_sync_wait新しく追加された統計の同期読み込み機能を有効にするかどうかを制御します。デフォルト値0は、機能が無効であり、統計が非同期でロードされることを意味します。この機能が有効な場合、この変数は、SQL 最適化が統計の同期読み込みをタイムアウトするまで待機できる最大時間を制御します。
tidb_stats_load_pseudo_timeout新しく追加された統計の同期ロードがタイムアウトに達するタイミング、SQL が失敗するか ( OFF )、疑似統計の使用にフォールバックするか ( ON ) を制御します。デフォルト値はOFFです。
tidb_backoff_lock_fast修正済みデフォルト値が100から10に変更されました。
tidb_enable_index_merge修正済みデフォルト値がOFFからONに変更されます。
  • TiDB クラスターを v4.0.0 より前のバージョンから v5.4.0 以降にアップグレードする場合、この変数はデフォルトでOFFになります。
  • TiDB クラスターを v4.0.0 以降から v5.4.0 以降にアップグレードする場合、この変数はアップグレード前と同じままになります。
  • v5.4.0 以降の新しく作成された TiDB クラスターの場合、この変数はデフォルトでONです。
tidb_store_limit修正済みv5.4.0 より前では、この変数はインスタンス レベルでグローバルに設定できます。 v5.4.0 以降、この変数はグローバル構成のみをサポートします。

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

コンフィグレーションファイルコンフィグレーション種類の変更説明
TiDBstats-load-concurrency新しく追加されたTiDB 同期ロード統計機能が同時に処理できる列の最大数を制御します。デフォルト値は5です。
TiDBstats-load-queue-size新しく追加されたTiDB 同期ロード統計機能がキャッシュできる列リクエストの最大数を制御します。デフォルト値は1000です。
TiKVsnap-generator-pool-size新しく追加されたsnap-generatorスレッド プールのサイズ。デフォルト値は2です。
TiKVlog.file.max-size log.file.max-days log.file.max-backups新しく追加された詳細はTiKVコンフィグレーションファイル - log.fileを参照してください。
TiKVraft-engine新しく追加されたenabledirbatch-compression-thresholdbytes-per-synctarget-file-sizepurge-thresholdrecovery-moderecovery-read-block-sizerecovery-read-block-size 、およびrecovery-threadsが含まれます。詳細については、 TiKVコンフィグレーションファイル - raft-engineを参照してください。
TiKVbackup.enable-auto-tune新しく追加されたv5.3.0 では、デフォルト値はfalseです。 v5.4.0 以降、デフォルト値はtrueに変更されました。このパラメーターは、クラスターのリソース使用率が高い場合に、クラスターへの影響を軽減するためにバックアップ タスクで使用されるリソースを制限するかどうかを制御します。デフォルトの構成では、バックアップ タスクの速度が遅くなる可能性があります。
TiKVlog-level log-format log-file log-rotation-size修正済みTiKV ログ パラメーターの名前は、TiDB ログ パラメーターと一致する名前 ( log.levellog.formatlog.file.filename 、およびlog.enable-timestampに置き換えられます。古いパラメータのみを設定し、その値がデフォルト以外の値に設定されている場合、古いパラメータは新しいパラメータとの互換性を維持します。古いパラメータと新しいパラメータの両方が設定されている場合は、新しいパラメータが有効になります。詳細はTiKVコンフィグレーションファイル - ログを参照してください。
TiKVlog-rotation-timespan削除されましたログローテーション間の期間。この期間が経過すると、ログ ファイルがローテーションされます。つまり、現在のログ ファイルのファイル名にタイムスタンプが追加され、新しいログ ファイルが作成されます。
TiKVallow-remove-leader削除されましたメインスイッチの削除を許可するかどうかを決定します。
TiKVraft-msg-flush-interval削除されましたRaftメッセージがバッチで送信される間隔を決定します。 Raftメッセージは、この設定項目で指定された間隔ごとにバッチで送信されます。
PDlog.level修正済みデフォルト値は「INFO」から「info」に変更され、大文字と小文字は区別されません。
TiFlashprofile.default.enable_elastic_threadpool新しく追加されたエラスティック スレッド プール機能を有効にするか無効にするかを決定します。この構成項目を有効にすると、同時実行性が高いシナリオでTiFlash CPU 使用率が大幅に向上します。デフォルト値はfalseです。
TiFlashstorage.format_version新しく追加されたDTFileのバージョンを指定します。デフォルト値は2で、この値の下ではハッシュがデータ ファイルに埋め込まれます。値を3に設定することもできます。 3の場合、データ ファイルにはメタデータとトークン データのチェックサムが含まれ、複数のハッシュ アルゴリズムがサポートされます。
TiFlashlogger.count修正済みデフォルト値は10に変更されます。
TiFlashstatus.metrics_port修正済みデフォルト値は8234に変更されます。
TiFlashraftstore.apply-pool-size新しく追加されたRaftデータをstorageにフラッシュするプール内のスレッドの許容数。デフォルト値は4です。
TiFlashraftstore.store-pool-size新しく追加されたRaftを処理するスレッドの許容数。これはRaftstoreスレッド プールのサイズです。デフォルト値は4です。
TiDB データ移行 (DM)collation_compatible新しく追加されたデフォルトの照合順序をCREATEの SQL ステートメントで同期するモード。値のオプションは「loose」(デフォルト) と「strict」です。
TiCDCmax-message-bytes修正済みKafka シンクのデフォルト値max-message-bytes 104857601 (10MB) に変更します。
TiCDCpartition-num修正済みKafka Sink のデフォルト値partition-num4から3に変更します。これにより、TiCDC が Kafaka パーティションにメッセージをより均等に送信できるようになります。
TiDB Lightningmeta-schema-name修正済みターゲット TiDB 内のメタデータのスキーマ名を指定します。 v5.4.0 以降、このスキーマは並行輸入品有効にした場合にのみ作成されます (対応するパラメーターはtikv-importer.incremental-import = true )。
TiDB Lightningtask-info-schema-name新しく追加されたTiDB Lightning が競合を検出したときに重複データが保存されるデータベースの名前を指定します。デフォルトでは、値は「lightning_task_info」です。このパラメータは、「重複解決」機能を有効にした場合にのみ指定します。
TiDB Lightningincremental-import新しく追加されたデータが既に存在するテーブルへのデータのインポートを許可するかどうかを決定します。デフォルト値はfalseです。

その他

  • TiDB と PD の間にインターフェイスが追加されます。 information_schema.TIDB_HOT_REGIONS_HISTORYシステム テーブルを使用する場合、TiDB は対応するバージョンの PD を使用する必要があります。
  • TiDB サーバー、PD サーバー、および TiKV サーバーは、ログ名、出力形式、ローテーションと有効期限のルールを管理するために、ログ関連パラメーターに統一された命名方法を使用し始めます。詳細はTiKV 設定ファイル - ログを参照してください。
  • v5.4.0 以降、プラン キャッシュ経由でキャッシュされた実行プランの SQL バインディングを作成すると、バインディングにより、対応するクエリに対してすでにキャッシュされているプラ​​ンが無効になります。新しいバインディングは、v5.4.0 より前にキャッシュされた実行プランには影響しません。
  • v5.3 以前のバージョンでは、 TiDB データ移行 (DM)ドキュメントは TiDB ドキュメントから独立しています。 v5.4 以降、DM ドキュメントは同じバージョンの TiDB ドキュメントに統合されています。 DMドキュメント DM ドキュメント サイトにアクセスせずに直接読むことができます。
  • cdclog とともにポイントインタイム リカバリ (PITR) の実験的機能を削除します。 v5.4.0 以降、cdclog ベースの PITR および cdclog はサポートされなくなりました。
  • システム変数を「DEFAULT」に設定する動作をより MySQL 互換にする#29680
  • システム変数lc_time_namesを読み取り専用#30084設定します。
  • tidb_store_limitのスコープを INSTANCE または GLOBAL から GLOBAL #30756に設定します。
  • 列にゼロが含まれる場合、整数型列を時間型列に変換することを禁止します#25728
  • 浮動小数点値を挿入するときにInfまたはNAN値に対してエラーが報告されない問題を修正します#30148
  • 自動 ID が範囲#30301の外にある場合、 REPLACEステートメントが他の行を誤って変更する問題を修正します。

新機能

SQL

  • TiDB は v5.4.0 以降 GBK 文字セットをサポートしています

    v5.4.0 より前では、TiDB はasciibinarylatin1utf8 、およびutf8mb4文字セットをサポートしていました。

    中国人ユーザーのサポートを強化するために、TiDB は v5.4.0 以降 GBK 文字セットをサポートしています。 TiDB クラスターを初めて初期化するときに TiDB 構成ファイルでnew_collations_enabled_on_first_bootstrapオプションを有効にすると、TiDB GBK 文字セットはgbk_bin照合順序とgbk_chinese_ci照合順序の両方をサポートします。

    GBK 文字セットを使用する場合は、互換性の制限に注意する必要があります。詳細は文字セットと照合順序 - GBKを参照してください。

Security

  • TiSpark はユーザー認証と認可をサポートします

    TiSpark 2.5.0 以降、TiSpark はデータベース ユーザー認証とデータベースまたはテーブル レベルでの読み取り/書き込み許可の両方をサポートしています。この機能を有効にすると、企業がデータを取得するための描画などの未承認のバッチ タスクを実行するのを防ぐことができ、オンライン クラスターの安定性とデータ セキュリティが向上します。

    この機能はデフォルトでは無効になっています。これが有効になっている場合、TiSpark を介して操作しているユーザーに必要な権限がない場合、ユーザーは TiSpark から例外を受け取ります。

    ユーザードキュメント

  • TiUP は、 root ユーザーの初期パスワードの生成をサポートします

    クラスターを起動するコマンドに--initパラメーターが導入されます。このパラメーターを使用すると、 TiUPを使用してデプロイされた TiDB クラスターで、 TiUP はデータベース root ユーザー用の強力な初期パスワードを生成します。これにより、空のパスワードを持つ root ユーザーを使用する際のセキュリティ リスクが回避され、データベースのセキュリティが確保されます。

    ユーザードキュメント

パフォーマンス

  • カラムナ型storageエンジンTiFlashとコンピューティング エンジン MPP の安定性とパフォーマンスの継続的な向上

    • MPP エンジンへのより多くの関数のプッシュダウンをサポートします。

      • 文字列関数: LPAD()RPAD()STRCMP()
      • 日付関数: ADDDATE(string, real)DATE_ADD(string, real)DATE_SUB(string, real)SUBDATE(string, real)QUARTER()
    • リソース使用率を向上させるためにエラスティック スレッド プール機能を導入します (実験的)

    • TiKV からデータをレプリケートする際に、行ベースのstorage形式から列ベースのstorage形式にデータを変換する効率が向上し、データ レプリケーションの全体的なパフォーマンスが 50% 向上します。

    • 一部の構成項目のデフォルト値を調整することで、 TiFlash のパフォーマンスと安定性を向上させます。 HTAP ハイブリッド ロードでは、単一テーブルに対する単純なクエリのパフォーマンスが最大 20% 向上します。

    ユーザードキュメント: サポートされているプッシュダウン計算tflash.toml ファイルを構成する

  • セッション変数を使用して、指定された時間範囲内の履歴データを読み取ります。

    TiDB は、 Raftコンセンサス アルゴリズムに基づいたマルチレプリカ分散データベースです。高同時実行性と高スループットのアプリケーション シナリオに直面して、TiDB はフォロワー レプリカを通じて読み取りパフォーマンスをスケールアウトし、読み取りリクエストと書き込みリクエストを分離できます。

    さまざまなアプリケーション シナリオに合わせて、TiDB は、強い一貫性のある読み取りと弱い一貫性のある履歴読み取りという 2 つのフォロワー読み取りモードを提供します。強力な一貫性のある読み取りモードは、リアルタイム データを必要とするアプリケーション シナリオに適しています。ただし、このモードでは、リーダーとフォロワーの間のデータ レプリケーションのレイテンシーとスループットの低下により、特に地理的に分散された展開の場合、読み取りリクエストのレイテンシーが長くなる可能性があります。

    リアルタイム データに対する要件がそれほど厳しくないアプリケーション シナリオの場合は、履歴読み取りモードをお勧めします。このモードでは、レイテンシーが短縮され、スループットが向上します。 TiDB は現在、次の方法による履歴データの読み取りをサポートしています。SQL ステートメントを使用して過去の時点からデータを読み取るか、過去の時点に基づいて読み取り専用トランザクションを開始します。どちらの方法でも、特定の時点または指定された時間範囲内の履歴データの読み取りがサポートされています。詳細はAS OF TIMESTAMP句を使用した履歴データの読み取りを参照してください。

    v5.4.0 以降、TiDB は、セッション変数を介して指定された時間範囲内の履歴データの読み取りをサポートすることにより、履歴読み取りモードの使いやすさを向上させています。このモードは、準リアルタイムのシナリオで低遅延、高スループットの読み取りリクエストを処理します。変数は次のように設定できます。

    set @@tidb_replica_read=leader_and_follower set @@tidb_read_staleness="-5"

    この設定により、TiDB は最も近いリーダーまたはフォロワー ノードを選択し、5 秒以内に最新の履歴データを読み取ることができます。

    ユーザードキュメント

  • インデックスマージの一般提供

    Index Merge は、SQL 最適化のための実験的機能として TiDB v4.0 に導入されました。この方法により、クエリで複数のデータ列のスキャンが必要な場合の条件フィルタリングが大幅に高速化されます。次のクエリを例として考えます。 WHEREステートメントでは、 ORで接続されたフィルター条件の列key1key2にそれぞれのインデックスがある場合、インデックス マージ機能はそれぞれのインデックスを同時にフィルターし、クエリ結果をマージし、マージされた結果を返します。

    SELECT * FROM table WHERE key1 <= 100 OR key2 = 200;

    TiDB v4.0 より前では、テーブルのクエリでは、フィルター処理に一度に 1 つのインデックスのみの使用がサポートされていました。複数の列のデータをクエリする場合は、インデックス マージを有効にして、個々の列のインデックスを使用して正確なクエリ結果を短時間で取得できます。インデックス マージにより、不必要なテーブル全体のスキャンが回避され、多数の複合インデックスを確立する必要がありません。

    v5.4.0 では、インデックス マージが GA になります。ただし、次の制限事項に注意する必要があります。

    • インデックス マージは、選言正規形 (X 1 ⋁ X 2 ⋁ …X n ) のみをサポートします。つまり、この機能は、 WHERE句のフィルター条件がORで接続されている場合にのみ機能します。

    • v5.4.0 以降の新しくデプロイされた TiDB クラスターの場合、この機能はデフォルトで有効になっています。以前のバージョンからアップグレードされた v5.4.0 以降の TiDB クラスターの場合、この機能はアップグレード前の設定を継承し、必要に応じて設定を変更できます (v4.0 より前の TiDB クラスターの場合、この機能は存在せず、デフォルトで無効になっています)。 。

    ユーザードキュメント

  • Raft Engineのサポート (実験的)

    TiKV のログstorageエンジンとしてRaft Engineの使用をサポートします。 RocksDB と比較して、 Raft Engine はTiKV I/O 書き込みトラフィックを最大 40% 削減し、CPU 使用率を 10% 削減すると同時に、特定の負荷の下でフォアグラウンド スループットを約 5% 向上させ、テールレイテンシーを 20% 削減します。さらに、 Raft Engine はログのリサイクル効率を向上させ、極限状態でのログの蓄積の問題を解決します。

    Raft Engine はまだ実験的機能であり、デフォルトでは無効になっています。 v5.4.0 のRaft Engineのデータ形式は以前のバージョンと互換性がないことに注意してください。クラスターをアップグレードする前に、すべての TiKV ノードのRaft Engineが無効になっていることを確認する必要があります。 Raft Engine はv5.4.0 以降のバージョンでのみ使用することをお勧めします。

    ユーザードキュメント

  • PREDICATE COLUMNSでの統計収集のサポート (実験的)

    ほとんどの場合、SQL ステートメントを実行するとき、オプティマイザーは一部の列 ( WHEREJOINORDER BY 、およびGROUP BYステートメントの列など) の統計のみを使用します。これらの使用される列はPREDICATE COLUMNSと呼ばれます。

    v5.4.0 以降、 tidb_enable_column_trackingシステム変数の値をONに設定して、TiDB がPREDICATE COLUMNSを収集できるようにすることができます。

    設定後、TiDB は 100 * stats-leaseごとにPREDICATE COLUMNS情報をmysql.column_stats_usageシステムテーブルに書き込みます。ビジネスのクエリ パターンが安定している場合は、 ANALYZE TABLE TableName PREDICATE COLUMNS構文を使用してPREDICATE COLUMNS列のみの統計を収集でき、統計収集のオーバーヘッドを大幅に削減できます。

    ユーザードキュメント

  • 統計の同期読み込みをサポート (実験的)

    v5.4.0 以降、TiDB には統計の同期ロード機能が導入されました。この機能はデフォルトでは無効になっています。この機能を有効にすると、TiDB は SQL ステートメントの実行時に大きなサイズの統計 (ヒストグラム、TopN、Count-Min Sketch 統計など) をメモリに同期的にロードできるようになり、SQL 最適化のための統計の完全性が向上します。

    ユーザードキュメント

安定性

  • 永続的な ANALYZE 構成のサポート

    統計は、オプティマイザが実行計画を生成するときに参照する基本情報の 1 つです。統計の精度は、生成された実行計画が妥当かどうかに直接影響します。統計の正確性を確保するには、異なるテーブル、パーティション、インデックスに対して異なる収集構成を設定することが必要になる場合があります。

    v5.4.0 以降、TiDB は一部のANALYZE構成の永続化をサポートします。この機能を使用すると、既存の構成を将来の統計収集に簡単に再利用できます。

    ANALYZE構成永続機能はデフォルトで有効になっています (デフォルトでは、システム変数tidb_analyze_version2 tidb_persist_analyze_options ONです)。この機能を使用すると、ステートメントを手動で実行するときにANALYZEステートメントで指定された永続性構成を記録できます。一度記録されると、次回 TiDB が自動的に統計を更新するとき、またはこれらの構成を指定せずに統計を手動で収集するときに、TiDB は記録された構成に従って統計を収集します。

    ユーザードキュメント

高可用性と災害復旧

  • クラスタに対するバックアップ タスクの影響を軽減する

    バックアップと復元 (BR) には、自動調整機能が導入されています (デフォルトで有効)。この機能は、クラスターのリソース使用状況を監視し、バックアップ タスクで使用されるスレッドの数を調整することにより、クラスターに対するバックアップ タスクの影響を軽減できます。場合によっては、バックアップ用のクラスター ハードウェア リソースを増やし、自動調整機能を有効にすると、クラスターに対するバックアップ タスクの影響を 10% 以下に制限できます。

    ユーザードキュメント

  • バックアップのターゲットstorageとして Azure Blob Storage をサポート

    バックアップと復元 (BR) は、リモート バックアップstorageとして Azure Blob Storage をサポートします。 TiDB を Azure クラウドにデプロイすると、クラスター データを Azure Blob Storage サービスにバックアップできるようになります。

    ユーザードキュメント

データ移行

  • TiDB Lightning は、データを含むテーブルへのデータのインポートを許可するかどうかを決定する新機能を導入します。

    TiDB Lightning には、構成項目incremental-importが導入されています。データを含むテーブルへのデータのインポートを許可するかどうかを決定します。デフォルト値はfalseです。並行インポート モードを使用する場合は、構成をtrueに設定する必要があります。

    ユーザードキュメント

  • TiDB Lightning、並行インポート用のメタ情報を保存するスキーマ名が導入されています

    TiDB Lightning にはmeta-schema-name構成項目が導入されています。並列インポート モードでは、このパラメータは、ターゲット クラスタ内の各TiDB Lightningインスタンスのメタ情報を保存するスキーマ名を指定します。デフォルトでは、値は「lightning_metadata」です。このパラメータに設定される値は、同じ並行インポートに参加する各TiDB Lightningインスタンスで同じである必要があります。そうしないと、インポートされたデータの正確性が保証されません。

    ユーザードキュメント

  • TiDB Lightning重複解決の導入

    ローカル バックエンド モードでは、 TiDB Lightning はデータのインポートが完了する前に重複したデータを出力し、その重複したデータをデータベースから削除します。インポートの完了後に重複データを解決し、アプリケーション ルールに従って挿入する適切なデータを選択できます。後続の増分データ移行フェーズで発生する重複データによって引き起こされるデータの不整合を避けるために、重複データに基づいてアップストリーム データ ソースをクリーンアップすることをお勧めします。

    ユーザードキュメント

  • TiDB Data Migration (DM) でのリレー ログの使用を最適化する

    • source構成のenable-relayスイッチを復旧します。

    • start-relayおよびstop-relayコマンドを使用したリレー ログの動的有効化および無効化をサポートします。

    • リレーログのステータスをsourceにバインドします。 source 、DM ワーカーに移行された後も、有効または無効の元のステータスを維持します。

    • 中継ログのstorageパスをDM-worker設定ファイルに移動します。

    ユーザードキュメント

  • DMの照合順序処理を最適化する

    collation_compatible設定項目を追加します。値のオプションはloose (デフォルト) とstrictです。

    • アプリケーションに照合順序に関する厳密な要件がなく、クエリ結果の照合順序がアップストリームとダウンストリームで異なる場合がある場合は、デフォルトのlooseモードを使用してエラーのレポートを回避できます。
    • アプリケーションに照合順序に関する厳格な要件があり、照合順序がアップストリームとダウンストリーム間で一貫している必要がある場合は、 strictモードを使用できます。ただし、ダウンストリームがアップストリームのデフォルトの照合順序をサポートしていない場合、データ レプリケーションでエラーが報告される可能性があります。

    ユーザードキュメント

  • DM のtransfer source最適化して、レプリケーション タスクのスムーズな実行をサポートします。

    DM ワーカー ノードに不均衡な負荷がある場合、 transfer sourceコマンドを使用してsourceの設定を別の負荷に手動で転送できます。最適化後、 transfer sourceコマンドにより手動操作が簡素化されます。 DM は他の操作を内部で完了するため、関連するすべてのタスクを一時停止することなく、ソースをスムーズに転送できます。

  • DM OpenAPI が一般提供 (GA) になりました

    DM は、データソースの追加やタスクの管理など、API を介した日常的な管理をサポートします。 v5.4.0 では、DM OpenAPI が GA になります。

    ユーザードキュメント

診断効率

  • Top SQL (実験的機能)

    新しい実験的機能であるTop SQL (デフォルトでは無効) は、ソースを消費するクエリを簡単に見つけられるように導入されました。

    ユーザードキュメント

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

  • クラスターに対する TiCDC の影響を最適化する

    TiCDC を使用する場合、TiDB クラスターのパフォーマンスへの影響が大幅に軽減されます。テスト環境では、TiCDC が TiDB に与えるパフォーマンスへの影響は 5% 未満に抑えることができます。

導入とメンテナンス

  • 継続的プロファイリングの強化 (実験的)

    • サポートされるコンポーネントの増加: TiDB、PD、TiKV に加えて、TiDB v5.4.0 はTiFlashの CPU プロファイリングもサポートします。

    • より多くの形式のプロファイリング表示: フレーム チャートでの CPU プロファイリングと Goroutine の結果の表示をサポートします。

    • より多くのデプロイメント環境がサポートされています: 継続的プロファイリングは、 TiDB Operatorを使用してデプロイされたクラスターにも使用できます。

    継続的プロファイリングはデフォルトでは無効になっていますが、TiDB ダッシュボードで有効にできます。

    継続的プロファイリングは、v1.9.0 以降のTiUPまたは v1.3.0 以降のTiDB Operatorを使用してデプロイまたはアップグレードされたクラスターに適用できます。

    ユーザードキュメント

改善点

  • TiDB

    • キャッシュされたクエリ プラン#30370をクリアするためのADMIN {SESSION | INSTANCE | GLOBAL} PLAN_CACHE構文をサポートします。
  • TiKV

    • コプロセッサーは、ストリームのような方法でリクエストを処理するためのページング API をサポートしています#11448
    • サポートread-through-lockにより、読み取り操作が二次ロックが解決されるまで待機する必要がなくなります#11402
    • ディスク領域の枯渇によるpanicを回避するために、ディスク保護メカニズムを追加します#10537
    • ログのアーカイブとローテーションをサポート#11651
    • Raftクライアントによるシステムコールを削減し、CPU 効率を向上させます#11309
    • コプロセッサーは、 TiKV #11495へのサブストリングのプッシュダウンをサポートします
    • Read Committed 分離レベル#11485で読み取りロックをスキップすることで、スキャンのパフォーマンスを向上させます。
    • バックアップ操作で使用されるデフォルトのスレッド プール サイズを減らし、ストレスが高い場合のスレッド プールの使用を制限します#11000
    • アプライ スレッド プールとストア スレッド プールのサイズの動的調整のサポート#11159
    • snap-generatorスレッド プール#11247のサイズの構成をサポート
    • 頻繁に読み取りと書き込みが行われるファイルが多数ある場合に発生するグローバル ロック競合の問題を最適化します#250
  • PD

    • デフォルトで過去のホットスポット情報を記録します#25281
    • リクエストの送信元を識別するための HTTPコンポーネントの署名の追加#4490
    • TiDB ダッシュボードを v2021.12.31 に更新します#4257
  • TiFlash

    • 現地オペレーターのコミュニケーションを最適化する
    • スレッドの頻繁な作成または破棄を避けるために、gRPC の非一時スレッド数を増やします。
  • ツール

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

      • BR が暗号化バックアップを実行するときにキーの有効性チェックを追加します#29794
    • TiCDC

      • 「EventFeed 再試行速度制限」ログの数を減らす#4006
      • 多数のテーブルをレプリケートする場合のレプリケーションのレイテンシーを短縮します#3900
      • TiKV ストアがダウンした場合に KV クライアントが回復するまでの時間を短縮します#3191
    • TiDB データ移行 (DM)

      • リレー有効時のCPU使用率を下げる#2214
    • TiDB Lightning

      • TiDB バックエンド モード#30953でのパフォーマンスを向上させるために、デフォルトで楽観的トランザクションを使用してデータを書き込みます
    • Dumpling

      • Dumpling がデータベース バージョン#29500をチェックする際の互換性を向上しました。
      • CREATE DATABASECREATE TABLEをダンプするときにデフォルトの照合順序を追加します#3420

バグの修正

  • TiDB

    • クラスターを v4.x から v5.x にアップグレードするときに発生するtidb_analyze_version値の変更の問題を修正します#25422
    • サブクエリ#30748で異なる照合順序を使用すると間違った結果が発生する問題を修正します。
    • TiDB のconcat(ifnull(time(3))の結果が MySQL #29498の結果と異なる問題を修正
    • 楽観的トランザクション モード#30410での潜在的なデータ インデックスの不一致の問題を修正します。
    • 式を TiKV #30200にプッシュダウンできない場合、IndexMerge のクエリ実行プランが間違っている問題を修正
    • 同時に列の型を変更すると、スキーマとデータの間で不整合が発生する問題を修正します#31048
    • サブクエリ#30913がある場合にIndexMergeクエリの結果が正しくない問題を修正
    • クライアント#30896で FetchSize が大きすぎるときに発生するpanicの問題を修正します。
    • LEFT JOIN が誤って INNER JOIN #20510に変換される可能性がある問題を修正
    • CASE-WHEN式と照合順序を併用するとpanicが発生する場合がある問題を修正#30245
    • IN値にバイナリ定数#31261含まれている場合に、間違ったクエリ結果が発生する問題を修正しました。
    • CTE にサブクエリ#31255がある場合に誤ったクエリ結果が発生する問題を修正
    • INSERT ... SELECT ... ON DUPLICATE KEY UPDATEステートメントを実行するとpanic#28078が発生する問題を修正
    • INDEX HASH JOIN がsend on closed channelエラー#31129を返す問題を修正
  • TiKV

    • MVCC 削除レコードが GC #11217によってクリアされない問題を修正
    • 悲観的トランザクションモードでプリライトリクエストを再試行すると、まれにデータ不整合のリスクが発生する可能性がある問題を修正します#11187
    • GC スキャンによりメモリオーバーフローが発生する問題を修正#11410
    • ディスク容量がいっぱいの場合、RocksDB のフラッシュまたは圧縮によってpanicが発生する問題を修正します#11224
  • PD

    • リージョン統計がflow-round-by-digit #4295の影響を受けない問題を修正
    • ターゲット ストアがダウンしているため、スケジューリング オペレーターがフェイル ファストできない問題を修正します#3353
    • オフラインストア上のリージョンを結合できない問題を修正#4119
    • コールド ホットスポット データがホットスポット統計#4390から削除できない問題を修正します。
  • TiFlash

    • MPP クエリが停止するとTiFlashがpanicになる問題を修正
    • where <string>句を含むクエリが間違った結果を返す問題を修正
    • 整数の主キーの列タイプをより大きな範囲に設定するときに発生する可能性があるデータの不整合の潜在的な問題を修正します。
    • 入力時刻が 1970-01-01 00:00:01 UTC より前の場合、 unix_timestampの動作が TiDB または MySQL の動作と一致しない問題を修正
    • TiFlashの再起動後にEstablishMPPConnectionエラーが返される場合がある問題を修正
    • TiFlashと TiDB/TiKV でCastStringAsDecimal動作が矛盾する問題を修正
    • クエリ結果でDB::Exception: Encode type of coprocessor response is not CHBlockエラーが返される問題を修正
    • TiFlashと TiDB/TiKV でcastStringAsReal動作が矛盾する問題を修正
    • TiFlashのdate_add_string_xxx関数の返された結果が MySQL の結果と一致しない問題を修正
  • ツール

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

      • 復元操作の完了後にリージョンの分布が不均一になる可能性があるという潜在的な問題を修正します#30425
      • minioをバックアップstorageとして使用する場合、エンドポイントに'/'指定できない問題を修正#30104
      • システム テーブルを同時にバックアップするとテーブル名の更新に失敗するため、システム テーブルを復元できない問題を修正します#29710
    • TiCDC

      • min.insync.replicasreplication-factor #3994より小さい場合にレプリケーションが実行できない問題を修正
      • cached region監視メトリクスがマイナス#4300になる問題を修正
      • mq sink write row監視データがない問題を修正#3431
      • sql mode #3810の互換性の問題を修正
      • レプリケーション タスクが削除されたときに発生する潜在的なpanicの問題を修正します#3128
      • デフォルトの列値#3929を出力するときに発生するpanicとデータの不整合の問題を修正します。
      • デフォルト値を複製できない問題を修正#3793
      • デッドロックによりレプリケーション タスクが停止するという潜在的な問題を修正します#4055
      • ディスクへの書き込みが完了したときにログが出力されない問題を修正#3362
      • DDL ステートメント内の特別なコメントによりレプリケーション タスクが停止する問題を修正します#3755
      • RHEL リリース#3584のタイムゾーンの問題によりサービスを開始できない問題を修正
      • 不正確なチェックポイント#3545によって引き起こされる潜在的なデータ損失の問題を修正します。
      • コンテナ環境の OOM 問題を修正する#1798
      • config.Metadata.Timeout #3352の誤った構成によって引き起こされるレプリケーション停止の問題を修正します。
    • TiDB データ移行 (DM)

      • CREATE VIEWステートメントがデータ レプリケーション#4173を中断する問題を修正します。
      • DDL ステートメントがスキップされた後にスキーマをリセットする必要がある問題を修正します#4177
      • DDL ステートメントがスキップされた後、テーブル チェックポイントが時間内に更新されない問題を修正します#4184
      • TiDB バージョンとパーサー バージョン#4298の互換性の問題を修正しました。
      • ステータス#4281をクエリする場合にのみ同期メトリクスが更新される問題を修正
    • TiDB Lightning

      • TiDB Lightning にテーブルmysql.tidbへのアクセス権限がない場合にインポート結果が正しくない問題を#31088
      • TiDB Lightningの再起動時に一部のチェックがスキップされる問題を修正#30772
      • S3 パスが存在しない場合にTiDB Lightning がエラーを報告できない問題を修正します#30674
    • TiDBBinlog

      • CREATE PLACEMENT POLICYステートメント#1118と互換性がないためにDrainer が失敗する問題を修正

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

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