TiDB 8.3.0 リリースノート

発売日: 2024年8月22日

TiDB バージョン: 8.3.0

クイックアクセス: クイックスタート

8.3.0 では、次の主要な機能と改善が導入されています。

カテゴリ機能/拡張機能説明
スケーラビリティとパフォーマンスパーティションテーブルのグローバルインデックス(実験的)グローバル インデックスを使用すると、パーティション化されていない列の取得効率を効果的に向上でき、一意のキーにパーティション キーが含まれていなければならないという制限がなくなります。この機能により、TiDB パーティション テーブルの使用シナリオが拡張され、データ移行に必要なアプリケーション変更作業の一部が回避されます。
storage子のProjectionエンジンへのデフォルトのプッシュダウンProjection演算子をstorageエンジンにプッシュダウンすると、ノード間のデータ転送を減らしながら、storageノード間で負荷を分散できます。この最適化により、特定の SQL クエリの実行時間が短縮され、データベース全体のパフォーマンスが向上します。
統計を収集する際に不要な列を無視するTiDB は、オプティマイザが必要な情報を確実に取得できるという前提の下、統計収集を高速化し、統計の適時性を向上させ、最適な実行プランが選択されるようにすることで、クラスターのパフォーマンスを向上させます。同時に、TiDB はシステム オーバーヘッドを削減し、リソースの使用率を向上させます。
信頼性と可用性TiProxyに組み込まれた仮想IP管理TiProxy には、組み込みの仮想 IP 管理機能が導入されています。設定すると、外部のプラットフォームやツールに依存せずに、自動仮想 IP 切り替えがサポートされます。この機能により、TiProxy の導入が簡素化され、データベース アクセスレイヤーの複雑さが軽減されます。

機能の詳細

パフォーマンス

  • オプティマイザは、デフォルトでProjection演算子をstorageエンジンにプッシュダウンすることを許可します#51876 @ いびん87

    Projection演算子をstorageエンジンにプッシュダウンすると、コンピューティング エンジンとstorageエンジン間のデータ転送が削減され、SQL 実行パフォーマンスが向上します。これは、 JSONクエリ関数またはJSON値属性関数含むクエリで特に効果的です。v8.3.0 以降、TiDB は、この機能を制御するシステム変数のデフォルト値tidb_opt_projection_push_downOFFからONに変更することで、 Projection演算子のプッシュダウン機能をデフォルトで有効にします。この機能を有効にすると、オプティマイザーは、適格な JSON クエリ関数と JSON 値属性関数をstorageエンジンに自動的にプッシュダウンします。

    詳細についてはドキュメント参照してください。

  • KV(キー値)リクエストのバッチ処理戦略を最適化する#55206 @ ジグアン

    TiDB は、TiKV に KV 要求を送信してデータを取得します。KV 要求を一括してバッチ処理すると、実行パフォーマンスが大幅に向上します。v8.3.0 より前の TiDB のバッチ処理戦略は効率が悪かったです。v8.3.0 以降、TiDB では既存のものに加えて、より効率的なバッチ処理戦略がいくつか導入されています。1 tikv-client.batch-policy構成項目を使用して、さまざまなワークロードに対応するために、さまざまなバッチ処理戦略を構成できます。

    詳細についてはドキュメント参照してください。

  • TiFlashは、高NDVデータ#9196 @ グオシャオゲのパフォーマンスを向上させるHashAgg集計計算モードを導入しました。

    v8.3.0 より前のTiFlashでは、NDV (個別値の数) が高いデータを処理する場合、HashAgg 集計の最初の段階で集計計算の効率が低くなります。v8.3.0 以降、 TiFlash は複数の HashAgg 集計計算モードを導入し、さまざまなデータ特性の集計パフォーマンスを向上させます。必要な HashAgg 集計計算モードを選択するには、 tiflash_hashagg_preaggregation_modeシステム変数を設定できます。

    詳細についてはドキュメント参照してください。

  • 統計を収集するときに不要な列を無視する#53567 @ ハイラスティン

    オプティマイザーが実行プランを生成する場合、フィルター条件の列、結合キーの列、集計に使用される列など、一部の列の統計のみが必要です。v8.3.0 以降、TiDB は SQL ステートメントで使用される列の履歴レコードを継続的に監視します。デフォルトでは、TiDB はインデックス付きの列と、統計収集が必要であると判断された列の統計のみを収集します。これにより、統計の収集が高速化され、不要なリソース消費が回避されます。

    クラスターを v8.3.0 より前のバージョンから v8.3.0 以降にアップグレードすると、TiDB はデフォルトで元の動作、つまりすべての列の統計を収集します。この機能を有効にするには、システム変数tidb_analyze_column_optionsPREDICATEに手動で設定する必要があります。新しくデプロイされたクラスターでは、この機能はデフォルトで有効になっています。

    ランダムクエリを多数実行する分析システムの場合、システム変数tidb_analyze_column_optionsALLに設定してすべての列の統計を収集し、ランダムクエリのパフォーマンスを確保できます。その他のタイプのシステムでは、必要な列の統計のみを収集するために、デフォルト設定 ( PREDICATE ) のtidb_analyze_column_options維持することをお勧めします。

    詳細についてはドキュメント参照してください。

  • 一部のシステムテーブルのクエリパフォーマンスを向上#50305 @ タンジェンタ

    以前のバージョンでは、クラスターのサイズが大きくなり、テーブル数が多くなると、システム テーブルのクエリのパフォーマンスが低下しました。

    v8.0.0 では、次の 4 つのシステム テーブルに対してクエリ パフォーマンスが最適化されています。

    • INFORMATION_SCHEMA.TABLES
    • INFORMATION_SCHEMA.STATISTICS
    • INFORMATION_SCHEMA.KEY_COLUMN_USAGE
    • INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS

    v8.3.0 では、次のシステム テーブルのクエリ パフォーマンスが最適化され、v8.2.0 と比較してパフォーマンスが数倍向上します。

    • INFORMATION_SCHEMA.CHECK_CONSTRAINTS
    • INFORMATION_SCHEMA.COLUMNS
    • INFORMATION_SCHEMA.PARTITIONS
    • INFORMATION_SCHEMA.SCHEMATA
    • INFORMATION_SCHEMA.SEQUENCES
    • INFORMATION_SCHEMA.TABLE_CONSTRAINTS
    • INFORMATION_SCHEMA.TIDB_CHECK_CONSTRAINTS
    • INFORMATION_SCHEMA.TiDB_INDEXES
    • INFORMATION_SCHEMA.TIDB_INDEX_USAGE
    • INFORMATION_SCHEMA.VIEWS
  • パーティション式がEXTRACT(YEAR_MONTH...)関数を使用する場合にパーティション プルーニングをサポートして、クエリのパフォーマンスを向上します#54209 @ ミョンス

    以前のバージョンでは、パーティション式でEXTRACT(YEAR_MONTH...)関数が使用される場合、パーティション プルーニングはサポートされず、クエリのパフォーマンスが低下しました。v8.3.0 以降では、パーティション式でEXTRACT(YEAR_MONTH...)関数が使用される場合にパーティション プルーニングがサポートされ、クエリのパフォーマンスが向上します。

    詳細についてはドキュメント参照してください。

  • CREATE TABLEのパフォーマンスを1.4倍、 CREATE DATABASEパフォーマンスを2.1倍、 ADD COLUMNパフォーマンスを#54436倍に向上させますD3ハンター

    TiDB v8.0.0 では、バッチ テーブル作成シナリオでのテーブル作成パフォーマンスを向上させるために、システム変数tidb_enable_fast_create_tableが導入されています。v8.3.0 では、単一のデータベースで 10 セッションを通じて同時にテーブル作成の DDL ステートメントを送信すると、v8.2.0 と比較してパフォーマンスが 1.4 倍向上します。

    v8.3.0 では、バッチ実行における一般的な DDL のパフォーマンスが v8.2.0 と比較して向上しています。10 CREATE DATABASE同時実行のパフォーマンスは、v8.1.0 と比較して 19 倍、v8.2.0 と比較して 2.1 倍向上しています。10 セッションを使用して、同じデータベース内の複数のテーブルにバッチで列 ( ADD COLUMN ) を追加するパフォーマンスは、v8.1.0 と比較して 10 倍、v8.2.0 と比較して 2.1 倍向上しています。同じデータベース内の複数のテーブルで 10 セッションを使用してADD COLUMNを実行するパフォーマンスは、v8.1.0 と比較して 10 倍、v8.2.0 と比較して 2 倍向上しています。

    詳細についてはドキュメント参照してください。

  • パーティションテーブルはグローバルインデックスをサポートします (実験的) #45133 @ ミョンス @ 定義2014 @ ジフハウス @ L-メープル

    以前のバージョンのパーティション テーブルでは、グローバル インデックスがサポートされていないため、いくつかの制限があります。たとえば、一意のキーは、テーブルのパーティション式のすべての列を使用する必要があります。クエリ条件でパーティション キーが使用されていない場合、クエリはすべてのパーティションをスキャンするため、パフォーマンスが低下します。v7.6.0 以降では、グローバル インデックス機能を有効にするためにシステム変数tidb_enable_global_indexが導入されています。ただし、この機能は当時開発中であったため、有効にすることはお勧めしません。

    v8.3.0 以降、グローバル インデックス機能は実験的機能としてリリースされています。キーワードGlobalを使用してパーティションテーブルにグローバル インデックスを明示的に作成すると、一意のキーがテーブルのパーティション式のすべての列を使用する必要があるという制限がなくなり、柔軟なビジネス ニーズを満たすことができます。グローバル インデックスは、パーティション キーを含まないクエリのパフォーマンスも向上させます。

    詳細についてはドキュメント参照してください。

信頼性

  • ストリーミング カーソル結果セットのサポート (実験的) #54526 @ ヤンケオ

    アプリケーション コードがカーソルフェッチ使用して結果セットを取得する場合、TiDB は通常、最初に完全な結果セットをメモリに保存し、次にデータをバッチでクライアントに返します。結果セットが大きすぎる場合、TiDB は結果を一時的にハード ディスクに書き込むことがあります。

    v8.3.0 以降では、システム変数tidb_enable_lazy_cursor_fetchONに設定すると、TiDB はすべてのデータを TiDB ノードに読み取らず、クライアントが読み取るにつれて徐々にデータを TiDB ノードに読み取ります。TiDB が大きな結果セットを処理する場合、この機能により TiDB ノードのメモリ使用量が削減され、クラスターの安定性が向上します。

    詳細についてはドキュメント参照してください。

  • SQL実行プランバインディングの強化#55280 #55343 @ 時間と運命

    OLTP シナリオでは、ほとんどの SQL ステートメントの最適な実行プランは固定されています。アプリケーション内の重要な SQL ステートメントに SQL 実行プラン バインディングを実装すると、実行プランが悪化する可能性が減り、システムの安定性が向上します。大量の SQL 実行プラン バインディングを作成するという要件を満たすために、TiDB は SQL バインディングの機能とエクスペリエンスを強化し、次の機能を提供します。

    • 単一の SQL ステートメントを使用して、複数の履歴実行プランから SQL 実行プラン バインディングを作成し、バインディングの作成効率を向上させます。
    • SQL 実行プラン バインディングは、より多くのオプティマイザ ヒントをサポートし、複雑な実行プランの変換方法を最適化するため、実行プランの復元におけるバインディングの安定性が向上します。

    詳細についてはドキュメント参照してください。

可用性

  • TiProxyは組み込みの仮想IP管理#583 @ 翻訳者をサポートします

    v8.3.0 より前では、高可用性のためにプライマリ/セカンダリ モードを使用する場合、TiProxy では仮想 IP アドレスを管理するための追加コンポーネントが必要でした。v8.3.0 以降、TiProxy は組み込みの仮想 IP 管理をサポートします。プライマリ/セカンダリ モードでは、プライマリ ノードがフェールオーバーすると、新しいプライマリ ノードは指定された仮想 IP に自動的にバインドされ、クライアントが常に仮想 IP を介して利用可能な TiProxy に接続できるようになります。

    仮想 IP 管理を有効にするには、TiProxy 構成項目ha.virtual-ipを使用して仮想 IP アドレスを指定し、 ha.interface使用して仮想 IP をバインドするネットワーク インターフェイスを指定します。仮想 IP は、これらの構成項目の両方が設定されている場合にのみ、TiProxy インスタンスにバインドされます。

    詳細についてはドキュメント参照してください。

構文

  • SELECT LOCK IN SHARE MODE排他ロック#54999 @ 翻訳へのアップグレードをサポート

    TiDB はまだSELECT LOCK IN SHARE MODEサポートしていません。v8.3.0 以降、TiDB はSELECT LOCK IN SHARE MODE排他ロックにアップグレードしてSELECT LOCK IN SHARE MODEのサポートを有効にすることをサポートしています。新しいシステム変数tidb_enable_shared_lock_promotion使用して、この機能を有効にするかどうかを制御できます。

    詳細についてはドキュメント参照してください。

可観測性

  • 初期統計#53564 @ ホーキングレイの読み込みの進行状況を表示します

    TiDB は起動時に基本統計を読み込みます。テーブルやパーティションが多数あるシナリオでは、このプロセスに長い時間がかかることがあります。構成項目force-init-statsONに設定されている場合、TiDB は初期統計が読み込まれるまでサービスを提供しません。この場合、読み込みプロセスを観察してサービスの開始時間を見積もる必要があります。

    v8.3.0 以降、TiDB は初期統計のロードの進行状況を段階的にログに出力、実行ステータスを把握できるようにしました。外部ツールにフォーマットされた結果を提供するために、TiDB は追加の監視APIを追加し、起動フェーズのいつでも初期統計のロードの進行状況を取得できるようにしました。

  • リクエストユニット (RU) 設定に関するメトリックを追加#8444 @ ノルーシュ

Security

  • PD ログ編集を強化#8305 @ じゃがいも

    TiDB v8.0.0 では、ログ編集が強化され、TiDB ログ内のユーザー データを‹ ›でマークできるようになりました。マークされたログに基づいて、ログを表示するときにマークされた情報を編集するかどうかを決定できるため、ログ編集の柔軟性が向上します。v8.2.0 では、 TiFlashで同様のログ編集強化が実装されています。

    v8.3.0 では、PD は同様のログ編集拡張機能を実装しています。この機能を使用するには、PD 構成項目の値をsecurity.redact-info-logから"marker"に設定できます。

    詳細についてはドキュメント参照してください。

  • TiKV ログ編集#17206 @ ルーカスリアンを強化

    TiDB v8.0.0 では、ログ編集が強化され、TiDB ログ内のユーザー データを‹ ›でマークできるようになりました。マークされたログに基づいて、ログを表示するときにマークされた情報を編集するかどうかを決定できるため、ログ編集の柔軟性が向上します。v8.2.0 では、 TiFlashで同様のログ編集強化が実装されています。

    v8.3.0 では、TiKV は同様のログ編集拡張機能を実装しています。この機能を使用するには、TiKV 構成項目の値をsecurity.redact-info-logから"marker"に設定できます。

    詳細についてはドキュメント参照してください。

データ移行

  • TiCDC は双方向レプリケーション (BDR) モードでの DDL ステートメントのレプリケーションをサポートしています (GA) #10301 #48519 @ ok江 @ アズドンメン

    TiCDC v7.6.0 では、双方向レプリケーションが構成された DDL ステートメントのレプリケーションが導入されました。以前は、DDL ステートメントの双方向レプリケーションは TiCDC でサポートされていなかったため、TiCDC の双方向レプリケーションのユーザーは、両方の TiDB クラスターで DDL ステートメントを個別に実行する必要がありました。この機能を使用すると、クラスターにPRIMARY BDR ロールを割り当てた後、TiCDC はそのクラスターからSECONDARYクラスターに DDL ステートメントをレプリケートできます。

    v8.3.0 では、この機能が一般提供 (GA) されます。

    詳細についてはドキュメント参照してください。

互換性の変更

注記:

このセクションでは、v8.2.0 から現在のバージョン (v8.3.0) にアップグレードするときに知っておく必要のある互換性の変更について説明します。v8.1.0 以前のバージョンから現在のバージョンにアップグレードする場合は、中間バージョンで導入された互換性の変更も確認する必要がある可能性があります。

行動の変化

  • コマンドの誤使用を避けるため、 pd-ctlプレフィックスマッチングメカニズムをキャンセルします。たとえば、 store remove-tombstone store remove #8413 @ 翻訳者では呼び出せません。

システム変数

変数名タイプを変更説明
tidb_ddl_reorg_batch_size修正済みSESSION スコープを追加します。
tidb_ddl_reorg_worker_cnt修正済みSESSION スコープを追加します。
tidb_gc_concurrency修正済みv8.3.0 以降、この変数はガベージコレクション (GC)プロセスのロックを解決する番目と範囲を削除番目のステップでの同時スレッドの数を制御します。v8.3.0 より前では、この変数はロックを解決する番目のステップでのスレッドの数のみを制御します。
tidb_low_resolution_tso修正済みGLOBAL スコープを追加します。
tidb_opt_projection_push_down修正済みGLOBAL スコープを追加し、変数値をクラスターに保持します。さらにテストを行った後、デフォルト値をOFFからONに変更します。つまり、オプティマイザーはProjection TiKV コプロセッサにプッシュダウンできます。
tidb_schema_cache_size修正済み値の範囲は0または[536870912, 9223372036854775807]に変更されました。キャッシュ サイズを小さく設定しすぎてパフォーマンスが低下するのを避けるため、最小値は536870912バイト (つまり 512 MiB) です。
tidb_analyze_column_options新しく追加されたANALYZE TABLEステートメントの動作を制御します。デフォルト値PREDICATEに設定すると、 述語列の統計のみが収集され、 ALLに設定すると、すべての列の統計が収集されます。
tidb_enable_lazy_cursor_fetch新しく追加されたカーソルフェッチ機能の動作を制御します。
tidb_enable_shared_lock_promotion新しく追加された共有ロックを排他ロックにアップグレードする機能を有効にするかどうかを制御します。この変数のデフォルト値はOFFで、共有ロックを排他ロックにアップグレードする機能が無効であることを意味します。
tiflash_hashagg_preaggregation_mode新しく追加されたTiFlashにプッシュダウンされる 2 段階または 3 段階の HashAgg 操作の最初の段階で使用される事前集計戦略を制御します。

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

コンフィグレーションファイルコンフィグレーションパラメータタイプを変更説明
ティビtikv-client.batch-policy新しく追加されたTiDB から TiKV へのリクエストのバッチ処理戦略を制御します。
PDsecurity.redact-info-log修正済みPD 構成項目の値をsecurity.redact-info-logから"marker"設定して、ログ内の機密情報を直接シールドするのではなく、 ‹ ›でマークすることをサポートします。7 オプション"marker"使用すると、編集ルールをカスタマイズできます。
ティクヴsecurity.redact-info-log修正済みTiKV 構成項目の値をsecurity.redact-info-logから"marker"設定して、ログ内の機密情報を直接シールドするのではなく、 ‹ ›でマークすることをサポートします。7 オプション"marker"使用すると、編集ルールをカスタマイズできます。
TiFlashsecurity.redact-info-log修正済みTiFlash Learner構成項目の値をsecurity.redact-info-logから"marker"設定して、ログ内の機密情報を直接保護するのではなく、 ‹ ›でマークすることをサポートします。7 "marker"を使用すると、編集ルールをカスタマイズできます。
BR--allow-pitr-from-incremental新しく追加された増分バックアップが後続のログ バックアップと互換性があるかどうかを制御します。デフォルト値はtrueで、増分バックアップが後続のログ バックアップと互換性があることを意味します。デフォルト値trueのままにすると、増分復元が開始される前に、再生する必要がある DDL が厳密にチェックされます。

システムテーブル

廃止された機能

  • 以下の機能は、v8.3.0 以降では非推奨となります。

    • v7.5.0 以降、 TiDBBinlogレプリ​​ケーションは非推奨です。v8.3.0 以降、 TiDB Binlog は完全に非推奨となり、将来のリリースで削除される予定です。増分データ レプリケーションの場合は、代わりにティCDC使用します。ポイントインタイム リカバリ (PITR) の場合は、 ピトル使用します。
    • v8.3.0 以降、 tidb_enable_column_trackingシステム変数は非推奨になりました。TiDB はデフォルトで述語列を追跡します。詳細については、 tidb_analyze_column_options参照してください。
  • 以下の機能は将来のバージョンで廃止される予定です。

    • TiDB では、統計を自動的に収集するタスクの順序を最適化するために優先キューを有効にするかどうかを制御するためのシステム変数tidb_enable_auto_analyze_priority_queueが導入されています。将来のリリースでは、統計を自動的に収集するタスクを順序付ける唯一の方法は優先キューになるため、このシステム変数は非推奨になります。
    • TiDB は、v7.5.0 でシステム変数tidb_enable_async_merge_global_statsを導入しました。これを使用して、TiDB がパーティション統計の非同期マージを使用して OOM の問題を回避するように設定できます。将来のリリースでは、パーティション統計は非同期にマージされるため、このシステム変数は非推奨になります。
    • 以降のリリースでは実行計画バインディングの自動進化再設計する予定であり、関連する変数と動作が変更されます。
    • v8.0.0 では、TiDB は、同時 HashAgg アルゴリズムのディスク スピルをサポートするかどうかを制御するtidb_enable_parallel_hashagg_spillシステム変数を導入します。将来のバージョンでは、 tidb_enable_parallel_hashagg_spillシステム変数は非推奨になります。
    • TiDB Lightningパラメータconflict.max-record-rowsは、将来のリリースで廃止される予定であり、その後削除されます。このパラメータはconflict.thresholdに置き換えられます。これは、競合するレコードの最大数が、単一のインポート タスクで許容できる競合するレコードの最大数と一致することを意味します。
  • 以下の機能は将来のバージョンで削除される予定です:

    • v8.0.0 以降、 TiDB Lightning物理インポート モードの競合検出の旧バージョン戦略が廃止され、 conflict.strategyパラメータを使用して論理インポート モードと物理インポート モードの両方の競合検出戦略を制御できるようになりました。競合検出の旧バージョンのduplicate-resolutionパラメータは、将来のリリースで削除される予定です。

改善点

  • ティビ

    • SELECT ... STRAIGHT_JOIN ... USING ( ... )ステートメント#54162 @ ドヴェーデンをサポートする
    • ((idx_col_1 > 1) or (idx_col_1 = 1 and idx_col_2 > 10)) and ((idx_col_1 < 10) or (idx_col_1 = 10 and idx_col_2 < 20)) #54337 @ ガザルファミリーのようなフィルタ条件に対してより正確なインデックスアクセス範囲を構築する
    • WHERE idx_col_1 IS NULL ORDER BY idx_col_2 #54188 @ アリエのようなSQLクエリの余分なソート操作を避けるためにインデックス順序を使用します。
    • mysql.analyze_jobsシステムテーブル#53567 @ ハイラスティンの分析されたインデックスを表示します
    • EXPLAINステートメントの出力にtidb_redact_log設定を適用し、ログ#54565 @ ホーキングレイの処理ロジックをさらに最適化することをサポート
    • クエリ効率を向上させるために、多値インデックスIndexRangeScanSelection演算子を生成するサポート#54876 @ 時間と運命
    • 設定された時間枠外で実行されているタスクを自動的にANALYZE終了する機能をサポート#55283 @ ホーキングレイ
    • 統計がすべて TopN で構成され、対応するテーブル統計の変更された行数がゼロ以外の場合、TopN にヒットしない等価条件の推定結果を 0 から 1 に調整します#47400 @ テリー・パーセル
    • TopN演算子はディスクスピル#47733 @ 翻訳者をサポートします
    • TiDBノードは、 WITH ROLLUP修飾子とGROUPING関数#42631 @ アレナトルクスを使用したクエリの実行をサポートしています。
    • システム変数tidb_low_resolution_tso GLOBALスコープ#55022 @ 翻訳をサポートします
    • 同時範囲削除をサポートすることでGC(ガベージコレクション)の効率を向上させます。同時スレッド数はtidb_gc_concurrency #54570 @ エキシウムで制御できます。
    • バルクDML実行モードのパフォーマンスを向上させる( tidb_dml_type = "bulk"#50215 @ エキシウム
    • スキーマ情報キャッシュ関連インターフェースのパフォーマンスを向上SchemaByID #54074 @ うわー
    • スキーマ情報キャッシュが有効な場合の特定のシステム テーブルのクエリ パフォーマンスを向上#50305 @ タンジェンタ
    • 一意のインデックス#53004 @ ランス6716を追加するときに競合するキーのエラー メッセージを最適化します
  • PD

    • リーダーの排除プロセスを加速するために、 pd-ctlを介してevict-leader-schedulerbatch構成を変更することをサポートします#8265 @ rleungx
    • Grafana のクラスタ > Label distributionパネルにstore_id監視メトリックを追加して、異なるラベル#8337 @ ヒューシャープに対応するストア ID を表示します。
    • 指定されたリソース グループが存在しない場合に、デフォルトのリソース グループへのフォールバックをサポートします#8388 @ じゃがいも
    • pd-ctl #8412 @ 沢民州regionコマンドによって出力されるリージョン情報にapproximate_kv_sizeフィールドを追加します。
    • PD APIを呼び出してTTL設定を削除するときに返されるメッセージを最適化します#8450 @ 翻訳者
    • 大規模なクエリ読み取り要求の RU 消費動作を最適化して、他の要求への影響を軽減します#8457 @ ノルーシュ
    • PD マイクロサービス#52912 @ rleungxを誤って構成した場合に返されるエラー メッセージを最適化します
    • PDマイクロサービスに--name起動パラメータを追加して、デプロイメント中にサービス名をより正確に表示します#7995 @ ヒューシャープ
    • リージョンスキャン時間を短縮するために、領域の数に基づいてPatrolRegionScanLimit動的に調整する機能をサポート#7963 @ 翻訳者
  • ティクヴ

    • async-io有効になっている場合、 Raftログを書き込むためのバッチ処理ポリシーを最適化して、ディスク I/O 帯域幅リソースの消費を削減します#16907 @ リクササシネーター
    • TiCDC デリゲートとダウンストリーム モジュールを再設計して、リージョン部分サブスクリプション#16362 @ ヒックをより適切にサポートします。
    • 単一のスロークエリログのサイズを縮小#17294 @ コナー1996
    • 新しい監視メトリックを追加するmin safe ts #17307 @ ミッタルリシャブ
    • ピアメッセージチャネル#16229 @ コナー1996のメモリ使用量を削減
  • TiFlash

  • ツール

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

      • 初めてポイントインタイムリカバリ (PITR) を開始する前に、フルバックアップが存在するかどうかのチェックをサポートします。フルバックアップが見つからない場合、 BR は復元を終了し、エラー#54418 @ リーヴルスを返します。
      • スナップショットバックアップを復元する前に、TiKV およびTiFlashのディスク容量が十分かどうかのチェックをサポートします。容量が不十分な場合、 BR は復元を終了し、エラー#54316 @ リドリスを返します。
      • TiKV が各 SST ファイルをダウンロードする前に、TiKV のディスク容量が十分かどうかのチェックをサポートします。容量が不十分な場合、 BR は復元を終了し、エラー#17224 @ リドリスを返します。
      • 環境変数#45551 @ リドリスによる Alibaba Cloud アクセス資格情報の設定をサポート
      • バックアップと復元にBR を使用するときに OOM を回避するために、 BRプロセスの使用可能なメモリに基づいて環境変数GOMEMLIMITを自動的に設定します#53777 @ リーヴルス
      • 増分バックアップをポイントインタイムリカバリ(PITR) #54474 @ 3ポインターと互換性のあるものにする
      • mysql.column_stats_usageテーブル#53567 @ ハイラスティンのバックアップと復元をサポート

バグ修正

  • ティビ

    • PipelinedWindowOpenメソッドのパラメータをリセットして、 PipelinedWindowApplyの子ノードとして使用されたときに、繰り返しの開閉操作#53600 @ 徐懐玉によって以前のパラメータ値が再利用されたために発生する予期しないエラーを修正します。
    • メモリ使用量がtidb_mem_quota_query #55042 @ いびん87で設定された制限を超えたためにクエリが終了したときに停止する可能性がある問題を修正しました
    • HashAgg 演算子のディスク スピルにより並列計算中に誤ったクエリ結果が発生する問題を修正#55290 @ 翻訳者
    • YEAR JSON 形式#54494 @ ヤンケオにキャストするときに間違ったJSON_TYPE発生する問題を修正
    • tidb_schema_cache_sizeシステム変数の値の範囲が間違っている問題を修正#54034 @ リリンハイ
    • パーティション式がEXTRACT(YEAR FROM col) #54210 @ ミョンスの場合にパーティションプルーニングが機能しない問題を修正しました
    • データベースに多数のテーブルが存在する場合にFLASHBACK DATABASE失敗する問題を修正#54415 @ ランス6716
    • 多数のデータベースを処理するときにFLASHBACK DATABASE無限ループに入る問題を修正#54915 @ ランス6716
    • インデックス加速モードでインデックスを追加すると失敗する可能性がある問題を修正#54568 @ ランス6716
    • ADMIN CANCEL DDL JOBSにより DDL が失敗する可能性がある問題を修正#54687 @ ランス6716
    • DMから複製されたテーブルのインデックス長がmax-index-length #55138 @ ランス6716で指定された最大長を超えるとテーブル複製が失敗する問題を修正しました。
    • tidb_enable_inl_join_inner_multi_pattern有効にして SQL 文を実行するとエラーruntime error: index out of range発生する可能性がある問題を修正#54535 @ ジョーチェン
    • 統計の初期化プロセス中に、 Control + C を使用して TiDB を終了できない問題を修正しました#54589 @ 天菜まお
    • INL_MERGE_JOINオプティマイザヒントが誤った結果を返す問題を修正しました#54064 @ アイリンキッドを廃止しました。
    • WITH ROLLUPを含む相関サブクエリによって TiDB がpanicを起こし、エラーruntime error: index out of range #54983 @ アイリンキッドを返す可能性がある問題を修正しました。
    • SQLクエリのフィルタ条件に仮想列が含まれ、実行条件にUnionScan #54870 @ qw4990が含まれている場合に述語を適切にプッシュダウンできない問題を修正しました。
    • tidb_enable_inl_join_inner_multi_pattern有効にして SQL 文を実行するとエラーruntime error: invalid memory address or nil pointer dereference発生する可能性がある問題を修正#55169 @ ホーキングレイ
    • UNIONを含むクエリ ステートメントが誤った結果#52985 @ 徐懐玉を返す可能性がある問題を修正しました
    • mysql.stats_histogramsの表のtot_col_size列目が負の数#55126 @ qw4990になる可能性がある問題を修正しました
    • columnEvaluator入力チャンク内の列参照を識別できず、SQL ステートメント#53713 @ アイリンキッドを実行するとruntime error: index out of range発生する問題を修正しました。
    • STATS_EXTENDED予約キーワード#39573 @ WDデバイスになる問題を修正
    • tidb_low_resolutionが有効になっている場合、 select for update #54684 @ 翻訳実行できる問題を修正
    • tidb_redact_logが有効になっている場合、スロークエリログに内部 SQL クエリが表示されない問題を修正#54190 @ lcwangchao
    • トランザクションによって使用されるメモリが複数回追跡される可能性がある問題を修正#53984 @ エキシウム
    • SHOW WARNINGS;使用して警告を取得するとpanicが発生する可能性がある問題を修正#48756 @ xhebox
    • インデックス統計の読み込み時にメモリリークが発生する可能性がある問題を修正#54022 @ ハイラスティン
    • 照合順序がutf8_binまたはutf8mb4_bin #53730 @ エルサ0520の場合にLENGTH()条件が予期せず削除される問題を修正しました
    • 重複した主キー#47539 @ 定義2014に遭遇したときに統計収集でstats_historyテーブルが更新されない問題を修正しました
    • 再帰 CTE クエリによって無効なポインタ#54449 @ ホーキングレイが生成される可能性がある問題を修正しました。
    • ハンドシェイクが完了する前に一部の接続が終了した場合に Grafana の接続数監視メトリックが正しくない問題を修正#54428 @ ヤンケオ
    • TiProxy とリソース グループ#54545 @ ヤンケオ使用するときに、各リソース グループの接続数が正しくない問題を修正しました。
    • クエリに非相関サブクエリとLIMIT句が含まれている場合、列のプルーニングが不完全になり、最適でないプラン#54213 @ qw4990になる可能性がある問題を修正しました。
    • SELECT ... FOR UPDATE #54652 @ qw4990の間違ったポイント取得プランを再利用する問題を修正
    • 最初の引数がmonthで、2 番目の引数が負の#54908 @ 翻訳者場合にTIMESTAMPADD()関数が無限ループに入る問題を修正しました。
    • スローログ内の内部SQL文がデフォルトでnullに編集される問題を修正#54190 #52743 #53264 @ lcwangchao
    • _tidb_rowidの実行プランPointGet#54583 @ 定義2014で生成できる問題を修正
    • v7.1 #54241 @ タンジェンタからアップグレードした後にSHOW IMPORT JOBSエラーUnknown column 'summary'報告する問題を修正
    • ビュー定義#54343 @ ランス6716でサブクエリが列定義として使用されている場合、 information_schema.columns使用して列情報を取得すると警告 1356 が返される問題を修正しました。
    • 厳密に自己増分ではないRANGEパーティションテーブルが#54829 @ 定義2014で作成できる問題を修正
    • SQLが異常に中断されたときにINDEX_HASH_JOIN正常に終了できない問題を修正#54688 @ うわー
    • 分散実行フレームワーク (DXF) を使用してインデックスを追加するときにネットワーク パーティションが発生すると、データ インデックス#54897 @ タンジェンタに不整合が発生する可能性がある問題を修正しました。
  • PD

    • ロールをリソース グループ#54417 @ じゃがいもにバインドするときにエラーが報告されない問題を修正しました
    • 500 ミリ秒を超えるトークンをリクエストするとリソース グループがクォータ制限に達する問題を修正#8349 @ ノルーシュ
    • INFORMATION_SCHEMA.RUNAWAY_WATCHESテーブルの時間データ型が正しくない問題を修正#54770 @ ヒューシャープ
    • 同時実行性が高い場合にリソース グループがリソースの使用を効果的に制限できない問題を修正#8435 @ ノルーシュ
    • テーブル属性#55188 @ じゃがいもを取得するときに誤った PD API が呼び出される問題を修正しました
    • schedulingマイクロサービスが有効になった後にスケーリングの進行状況が正しく表示されない問題を修正#8331 @ rleungx
    • 使用前に暗号化マネージャーが初期化されない問題を修正#8384 @ rleungx
    • 一部のログが編集されていない問題を修正#8419 @ rleungx
    • PD マイクロサービス#8406 @ ヒューシャープの起動中にリダイレクトがpanicになる可能性がある問題を修正しました
    • split-merge-interval構成項目の値を繰り返し変更すると( 1sから1hに変更して1sに戻すなど)、その設定項目が有効にならない可能性がある問題を修正しました#8404 @ 翻訳者
    • replication.strictly-match-labelからtrueに設定するとTiFlash が#8480 @ rleungxで起動しなくなる問題を修正
    • 大きなパーティションテーブルを分析するときに TSO の取得が遅くなり、パフォーマンスの低下がANALYZE発生する問題を修正しました#8500 @ rleungx
    • 大規模クラスタにおける潜在的なデータ競合を修正#8386 @ rleungx
    • クエリがランナウェイ クエリであるかどうかを判断するときに、TiDB はコプロセッサー側で費やされた時間消費のみをカウントし、TiDB 側で費やされた時間消費をカウントしないため、一部のクエリがランナウェイ クエリ#51325 @ ヒューシャープとして識別されない問題を修正しました。
  • TiFlash

    • CAST()関数を使用して文字列をタイムゾーンまたは無効な文字を含む日付時刻に変換すると、結果が正しくなくなる問題を修正しました#8754 @ ソロッツ
    • データベース#9132 @ ジェイソン・ファンにまたがる空のパーティションを持つパーティションテーブルでRENAME TABLE ... TO ...実行した後にTiFlash がpanic可能性がある問題を修正しました。
    • 遅延マテリアライゼーションが有効になった後に、一部のクエリで列タイプの不一致エラーが報告される問題を修正#9175 @ ジンヘリン
    • 遅延マテリアライゼーションが有効になった後、仮想生成列を含むクエリが誤った結果を返す可能性がある問題を修正#9188 @ ジンヘリン
    • TiFlashで SSL 証明書構成を空の文字列に設定すると、誤って TLS が有効になり、 TiFlash が起動しなくなる問題を修正しました#9235 @ ジェイソン・ファン
    • データベースが作成直後に削除されるとTiFlash がpanic可能性がある問題を修正#9266 @ ジェイソン・ファン
    • TiFlashと PD 間のネットワーク パーティション (ネットワーク切断) により読み取り要求タイムアウト エラーが発生する可能性がある問題を修正#9243 @ ロイド・ポティガー
    • 分散storageおよびコンピューティングアーキテクチャ#9282 @ ジェイソン・ファンでTiFlash書き込みノードが再起動に失敗する可能性がある問題を修正しました
    • 分散storageおよびコンピューティングアーキテクチャ#9298 @ ジンヘリンで、 TiFlash書き込みノードの読み取りスナップショットがタイムリーにリリースされない問題を修正しました。
  • ティクヴ

    • 古い領域をクリーンアップすると、有効なデータが誤って削除される可能性がある問題を修正#17258 @ ビシェン
    • Grafana #15990 @ コナー1996の TiKV ダッシュボードでIngestion picked levelCompaction Job Size(files)誤って表示される問題を修正しました
    • cancel_generating_snap誤ってsnap_tried_cntを更新して TiKV がpanicになる問題を修正#17226 @ ビシェン
    • Ingest SST duration secondsの情報が間違っている問題を修正#17239 @ リクササシネーター
    • エラーが発生したときにCPUプロファイリングフラグが正しくリセットされない問題を修正#17234 @ コナー1996
    • ブルームフィルタが以前のバージョン(v7.1以前)とそれ以降のバージョン#17272 @ v01dスターの間で互換性がない問題を修正しました
  • ツール

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

      • ADD INDEXMODIFY COLUMNなどのバックフィルを必要とする DDL が、増分リストア#54426 @ 3ポインター中に正しく回復されない可能性がある問題を修正しました。
      • バックアップと復元中に進行が停止する問題を修正#54140 @ リーヴルス
      • バックアップと復元のチェックポイントパスが一部の外部storageと互換性がない問題を修正#55265 @ リーヴルス
    • ティCDC

      • 下流の Kafka にアクセスできない場合にプロセッサが停止する可能性がある問題を修正#11340 @ アズドンメン
    • TiDB データ移行 (DM)

      • スキーマ トラッカーが LIST パーティション テーブルを誤って処理し、DM エラー#11408 @ ランス6716が発生する問題を修正しました。
      • インデックスの長さがデフォルト値のmax-index-length #11459 @ マイケル・ムデンを超えるとデータレプリケーションが中断される問題を修正
      • DMがFAKE_ROTATE_EVENT正しく処理できない問題を修正#11381 @ ランス6716
    • TiDB Lightning

      • TiDB Lightning がキースペース名#54232 @ ケニー取得に失敗した場合に紛らわしいWARNログを出力する問題を修正しました
      • TiDB Lightningの TLS 構成がクラスタ証明書#54172 @ 杉本栄に影響する問題を修正
      • TiDB Lightning #49826 @ ランス6716使用してデータのインポート中にトランザクションの競合が発生する問題を修正しました
      • 多数のデータベースとテーブル#55054 @ D3ハンターのインポート中に大きなチェックポイント ファイルによってパフォーマンスが低下する問題を修正しました

寄稿者

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

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