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

TiDB 5.4 リリースノート



発売日:2022年2月15日

TiDB バージョン: 5.4.0

バージョン5.4における主な新機能または改善点は以下のとおりです。

  • GBK文字セットをサポート
  • インデックスマージを使用してデータにアクセスすることをサポートします。これは、複数の列のインデックスのフィルタリング結果をマージします。
  • セッション変数を使用して古いデータを読み取ることをサポートする
  • 統計情報を収集するための設定を永続化する機能をサポートする
  • TiKVのログストレージエンジンとしてRaft Engineを使用することをサポートする(実験的)
  • バックアップがクラスタに与える影響を最適化する
  • バックアップストレージとしてAzure Blobストレージの使用をサポートします。
  • 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以降にアップグレードした場合、この変数はアップグレード前と同じままです。
  • バージョン5.4.0以降で新たに作成されたTiDBクラスタでは、この変数はデフォルトでONなっています。
tidb_store_limit変更バージョン5.4.0より前は、この変数はインスタンスレベルとグローバルレベルの両方で設定可能でした。バージョン5.4.0以降は、この変数はグローバル設定のみをサポートします。

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

コンフィグレーションファイルコンフィグレーション変更の種類説明
TiDBstats-load-concurrency新しく追加されたTiDBの同期ロード統計機能が同時に処理できる列の最大数を制御します。デフォルト値は5です。
TiDBstats-load-queue-size新しく追加されたTiDBの同期ロード統計機能がキャッシュできる列リクエストの最大数を制御します。デフォルト値は1000です。
TiKVsnap-generator-pool-size新しく追加されたsnap-generatorスレッドプールのサイズ。デフォルト値は2です。
TiKVlog.file.max-sizelog.file.max-dayslog.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-levellog-formatlog-filelog-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データをストレージにフラッシュするプール内のスレッドの許容数。デフォルト値は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-numのデフォルト値を4から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設定ファイル - ログをご覧ください。
  • バージョン5.4.0以降、プランキャッシュによってキャッシュされた実行プランに対してSQLバインディングを作成すると、対応するクエリに対して既にキャッシュされているプラ​​ンが無効化されます。この新しいバインディングは、バージョン5.4.0より前にキャッシュされた実行プランには影響しません。
  • v5.3 以前のバージョンでは、 TiDB Data Migration (DM)ドキュメントは TiDB ドキュメントから独立しています。 v5.4 以降、DM ドキュメントは同じバージョンの TiDB ドキュメントに統合されています。 DM ドキュメント サイトにアクセスせずに、 DMドキュメントを直接読むことができます。
  • ポイントインタイムリカバリ(PITR)の実験的機能をcdclogとともに削除しました。バージョン5.4.0以降、cdclogベースのPITRおよびcdclogはサポートされなくなりました。
  • システム変数を「DEFAULT」に設定する動作をMySQLとの互換性を高める #29680
  • システム変数lc_time_namesを読み取り専用に設定する #30084
  • tidb_store_limitのスコープを INSTANCE または GLOBAL から GLOBAL に変更する #30756
  • 列にゼロが含まれている場合、整数型の列を時間型の列に変換することを禁止する #25728
  • 浮動小数点値を挿入する際にInfまたはNANの値に対してエラーが報告されない問題を修正します #30148
  • REPLACEステートメントが自動 ID が範囲外の場合に他の行を誤って変更してしまう問題を修正しました #30301

新機能

SQL

  • TiDBはバージョン5.4.0以降、GBK文字セットをサポートしています。

    バージョン 5.4.0 より前の TiDB は、 asciibinarylatin1utf8 、およびutf8mb4文字セットをサポートしています。

    中国語ユーザーをより適切にサポートするため、TiDB はバージョン 5.4.0 以降、GBK 文字セットをサポートしています。TiDB クラスタを初めて初期化する際に、TiDB 設定ファイルでnew_collations_enabled_on_first_bootstrapオプションを有効にすると、TiDB GBK 文字セットはgbk_bingbk_chinese_ciの照合順序をサポートします。

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

セキュリティ

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

    TiSpark 2.5.0以降、TiSparkはデータベースユーザー認証と、データベースまたはテーブルレベルでの読み書き権限の両方をサポートしています。この機能を有効にすることで、データ取得のためのドローなどの不正なバッチタスクの実行を防止でき、オンラインクラスタの安定性とデータセキュリティが向上します。

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

    ユーザー向けドキュメント

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

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

    ユーザー向けドキュメント

パフォーマンス

  • カラム型ストレージエンジンTiFlashおよび演算エンジンMPPの安定性とパフォーマンスの向上を継続する。

    • MPPエンジンへの関数委譲をさらに強化する:

      • 文字列関数: LPAD()RPAD()STRCMP()
      • 日付関数: ADDDATE(string, real)DATE_ADD(string, real)DATE_SUB(string, real)SUBDATE(string, real)QUARTER()
    • リソース利用率を向上させるための弾性スレッドプール機能を導入(実験的)

    • TiKVからデータを複製する際に、行ベースのストレージ形式から列ベースのストレージ形式へのデータ変換の効率を向上させ、データ複製の全体的なパフォーマンスを50%向上させました。

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

    ユーザードキュメント: プッシュダウン計算に対応tiflash.toml ファイルを設定します

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

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

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

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

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

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

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

    ユーザー向けドキュメント

  • インデックスマージのためのGA

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

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

    TiDB v4.0より前のバージョンでは、テーブルに対するクエリで一度にフィルタリングに使用できるインデックスは1つだけでした。複数の列のデータに対してクエリを実行する場合は、インデックスマージを有効にすることで、個々の列のインデックスを使用して短時間で正確なクエリ結果を取得できます。インデックスマージは不要なフルテーブルスキャンを回避し、多数の複合インデックスを作成する必要もありません。

    バージョン5.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のログストレージエンジンとして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 Raft Engine はv5.4.0 以降のバージョンでのみ使用することをお勧めします。

    ユーザー向けドキュメント

  • PREDICATE COLUMNSに関する統計情報の収集をサポートする(実験的)

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

    バージョン5.4.0以降では、 tidb_enable_column_trackingシステム変数の値をONに設定することで、TiDBがPREDICATE COLUMNSを収集できるようになります。

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

    ユーザー向けドキュメント

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

    バージョン5.4.0以降、TiDBは統計情報の同期読み込み機能を導入しました。この機能はデフォルトでは無効になっています。この機能を有効にすると、SQL文の実行時に、ヒストグラム、TopN、Count-Min Sketch統計情報などの大規模な統計情報をメモリに同期的に読み込むことができるようになり、SQL最適化のための統計情報の網羅性が向上します。

    ユーザー向けドキュメント

安定性

  • ANALYZE構成の永続化をサポートする

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

    バージョン5.4.0以降、TiDBは一部のANALYZE設定の永続化をサポートしています。この機能により、既存の設定を今後の統計情報収集に簡単に再利用できます。

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

    ユーザー向けドキュメント

高可用性とディザスタリカバリ

  • バックアップタスクがクラスタに与える影響を軽減する

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

    ユーザー向けドキュメント

  • バックアップのターゲットストレージとしてAzure Blob Storageをサポートする

    Backup & Restore (BR) は、リモートバックアップストレージとして Azure Blob Storage をサポートしています。Azure クラウドに TiDB をデプロイしている場合、クラスタデータを 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)におけるリレーログの使用を最適化する

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

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

    • リレーログの状態をsourceにバインドします。 sourceどの DM-worker に移行されても、有効または無効の元の状態を維持します。

    • リレーログのストレージパスをDM-workerの設定ファイルに移動します。

    ユーザー向けドキュメント

  • DMにおける照合順序処理を最適化する

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

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

    ユーザー向けドキュメント

  • DM のtransfer sourceを最適化して、レプリケーション タスクをスムーズに実行できるようにします。

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

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

    DMは、データソースの追加やタスク管理など、APIを介した日常的な管理をサポートしています。バージョン5.4.0では、DM OpenAPIが一般提供開始となります。

    ユーザー向けドキュメント

診断効率

  • Top SQL (実験的機能)

    ソースコードを大量に消費するクエリを簡単に見つけるのに役立つ、新しい実験的機能である「Top SQL」 (デフォルトでは無効)が導入されました。

    ユーザー向けドキュメント

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

  • TiCDCがクラスターに与える影響を最適化する

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

導入と保守

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

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

    • プロファイリング表示の形式がさらに充実:CPUプロファイリングとゴルーチンの結果をフレームチャートに表示できるようになりました。

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

    継続的プロファイリングはデフォルトでは無効になっており、TiDB Dashboardで有効にすることができます。

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

    ユーザー向けドキュメント

改善点

  • TiDB

    • キャッシュされたクエリ プランをクリアするためのADMIN {SESSION | INSTANCE | GLOBAL} PLAN_CACHE構文をサポート #30370
  • 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 Dashboardをv2021.12.31にアップデート #4257
  • TiFlash

    • ローカルオペレーター間の通信を最適化する
    • gRPCの非一時スレッド数を増やして、頻繁なスレッドの生成や破棄を回避する。
  • ツール

    • Backup & Restore (BR)

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

      • 「EventFeed retry rate limited」ログの数を減らす #4006
      • 多数のテーブルを複製する際のレプリケーションレイテンシーを削減する #3900
      • TiKVストアがダウンした際にKVクライアントが復旧するまでの時間を短縮する #3191
    • TiDB Data Migration (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 にプッシュダウンできない場合に IndexMerge のクエリ実行プランが誤っている問題を修正しました #30200
    • 同時実行される列型変更によってスキーマとデータの間に不整合が生じる問題を修正します #31048
    • サブクエリが存在する場合に IndexMerge クエリの結果が間違っている問題を修正しました #30913
    • クライアントで FetchSize が大きすぎると発生するpanic問題を修正しました #30896
    • 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 の戻り値と一致しない問題を修正します。
  • ツール

    • Backup & Restore (BR)

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

      • min.insync.replicasreplication-factorより小さい場合にレプリケーションが実行できない問題を修正します #3994
      • cached regionモニタリングメトリックが負の値になる問題を修正しました #4300
      • mq sink write rowに監視データがない問題を修正 #3431
      • sql modeの互換性の問題を修正しました #3810
      • レプリケーションタスクが削除された際に発生する可能性のあるpanic問題を修正 #3128
      • デフォルト列値を出力する際に​​発生するpanicとデータ不整合の問題を修正しました #3929
      • デフォルト値が複製できない問題を修正 #3793
      • デッドロックによってレプリケーションタスクが停止する可能性のある問題を修正します #4055
      • ディスクへの書き込みが完了した際にログが出力されない問題を修正 #3362
      • DDLステートメント内の特殊コメントがレプリケーションタスクの停止を引き起こす問題を修正 #3755
      • RHEL リリースにおいて、タイムゾーンの問題によりサービスを開始できない問題を修正しました。 #3584
      • 不正確なチェックポイントによって引き起こされる可能性のあるデータ損失の問題を修正しました #3545
      • コンテナ環境におけるOOM問題を修正 #1798
      • config.Metadata.Timeoutの設定ミスが原因で発生するレプリケーション停止の問題を修正します #3352
    • TiDB Data Migration (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
    • TiDB Binlog

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

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