TiDB 8.5.0 リリースノート

発売日: 2024年12月19日

TiDB バージョン: 8.5.0

クイックアクセス: クイックスタート | 実稼働環境への導入

TiDB 8.5.0 は長期サポートリリース (LTS) です。

以前の LTS 8.1.0 と比較して、8.5.0 には、 8.2.0-DMR8.3.0-DMR8.4.0-DMRでリリースされた新機能、改善、バグ修正が含まれています。8.1.x から 8.5.0 にアップグレードする場合、 TiDB リリースノート PDFをダウンロードして、2 つの LTS バージョン間のすべてのリリース ノートを表示できます。次の表に、8.1.0 から 8.5.0 への主な変更点を示します。

カテゴリ機能/拡張機能説明
スケーラビリティとパフォーマンス複数の次元でデータ処理のレイテンシーを削減TiDB は、データ処理を継続的に改良してパフォーマンスを向上させ、金融シナリオにおける低レイテンシの SQL 処理要件を効果的に満たします。主な更新内容は次のとおりです。
  • 並列ソートをサポート(v8.2.0 で導入)
  • KV (キー値) リクエストのバッチ処理戦略を最適化 (v8.3.0 で導入)
  • TSO リクエストの並列モードをサポート (v8.4.0 で導入)
  • DELETE操作のリソース オーバーヘッドを削減 (v8.4.0 で導入)
  • キャッシュされたテーブルのクエリ パフォーマンスを向上 (v8.4.0 で導入)
  • ハッシュ結合の最適化バージョンを導入します (実験的、v8.4.0 で導入)
  • TiKV MVCC インメモリ エンジン (IME) (v8.5.0 で導入) TiKV MVCC インメモリ エンジンは、最新の MVCC バージョンのデータをメモリにキャッシュし、TiKV が古いバージョンをすばやくスキップして最新のデータを取得できるようにします。この機能により、データ レコードが頻繁に更新されるシナリオや、履歴バージョンが長期間保持されるシナリオで、データ スキャンのパフォーマンスが大幅に向上します。
    アクティブ PD フォロワーを使用して PD のリージョン情報クエリ サービスを強化します(v8.5.0 で GA) TiDB v7.6.0 では、PD フォロワーがリージョン情報クエリ サービスを提供できるようにする実験的機能「Active PD Follower 」が導入されています。この機能により、多数の TiDB ノードとリージョンを持つクラスターでGetRegionおよびScanRegions要求を処理する PD クラスターの機能が向上し、PD リーダーの CPU 負荷が軽減されます。v8.5.0 では、この機能が一般提供 (GA) されます。
    インスタンスレベルの実行プラン キャッシュ(実験的、v8.4.0 で導入)インスタンス レベルのプラン キャッシュを使用すると、同じ TiDB インスタンス内のすべてのセッションでプラン キャッシュを共有できます。セッション レベルのプラン キャッシュと比較すると、この機能では、より多くの実行プランをメモリにキャッシュすることで SQL コンパイル時間が短縮され、全体的な SQL 実行時間が短縮されます。これにより、OLTP のパフォーマンスとスループットが向上し、メモリ使用量の制御が向上し、データベースの安定性が向上します。
    パーティションテーブルのグローバル インデックス(v8.4.0 で GA)グローバル インデックスを使用すると、パーティション化されていない列の取得効率を効果的に向上させ、一意のキーにパーティション キーが含まれていなければならないという制限を排除できます。この機能により、TiDB パーティション テーブルの使用シナリオが拡張され、パーティション テーブルのパフォーマンスが向上し、特定のクエリ シナリオでのリソース消費が削減されます。
    storage演算子のProjectionエンジンへのデフォルトのプッシュダウン(v8.3.0 で導入) Projection演算子をstorageエンジンにプッシュダウンすると、ノード間のデータ転送を減らしながら、storageノード間で負荷を分散できます。この最適化により、特定の SQL クエリの実行時間が短縮され、データベース全体のパフォーマンスが向上します。
    統計を収集する際に不要な列を無視する(v8.3.0 で導入) TiDB は、オプティマイザが必要な情報を確実に取得できるという前提の下、統計収集を高速化し、統計の適時性を向上させ、最適な実行プランが選択されるようにすることで、クラスターのパフォーマンスを向上させます。同時に、TiDB はシステム オーバーヘッドを削減し、リソースの使用率を向上させます。
    信頼性と可用性大規模クラスタの安定性を向上TiDB を使用してマルチテナントまたは SaaS アプリケーションを実行する企業では、多くの場合、多数のテーブルを保存する必要があります。v8.5.0 では、TiDB によって大規模クラスターの安定性が大幅に向上します。
  • スキーマ キャッシュ制御TiDB 統計キャッシュのメモリクォータの設定が一般提供 (GA) され、過剰なメモリ消費によって発生する安定性の問題が軽減されます。
  • PD は、多数のリージョンによってもたらされる負荷に対処するためにActive Follower を導入し、 PD によって処理されるサービスを徐々に分離して独立した展開を実現します。
  • PD はリージョンハートビート処理のパフォーマンスを向上させ、単一のクラスターに対して数千万のリージョンをサポートします。
  • 同時実行性を高め収集されるオブジェクトの数を減らすことで、統計の収集と読み込みの効率を向上させ、大規模なクラスターでの実行プランの安定性を確保できます。
  • ランナウェイクエリのトリガーをさらにサポートし、リソースグループの切り替えをサポートします(v8.4.0 で導入)ランナウェイ クエリは、予期しない SQL パフォーマンスの問題がシステムに与える影響を軽減する効果的な方法を提供します。TiDB v8.4.0 では、コプロセッサーによって処理されたキーの数 ( PROCESSED_KEYS ) と要求単位 ( RU ) が識別条件として導入され、識別されたクエリが指定されたリソース グループに配置されるため、ランナウェイ クエリをより正確に識別して制御できます。
    リソース制御のバックグラウンド タスクのリソース使用量の上限設定をサポート(実験的、v8.4.0 で導入)リソース制御のバックグラウンド タスクに最大パーセンテージ制限を設定することで、さまざまなアプリケーション システムのニーズに基づいてリソース消費を制御できます。これにより、バックグラウンド タスクの消費を低いレベルに抑え、オンライン サービスの品質を確保できます。
    TiProxyの使用例を強化および拡張するTiDB の高可用性の重要なコンポーネントとして、 TiProxy はSQL トラフィックのアクセスと転送を超えて機能を拡張し、クラスターの変更評価をサポートします。主な機能は次のとおりです。
  • TiProxy はトラフィックのキャプチャと再生をサポートします(実験的、v8.4.0 で導入)
  • TiProxy は組み込みの仮想 IP 管理をサポートします(v8.3.0 で導入)
  • TiProxy は複数の負荷分散ポリシーをサポートします(v8.2.0 で導入)
  • TiDB の並列 HashAgg アルゴリズムはディスク スピルをサポートします(v8.2.0 で GA) HashAgg は、同じフィールド値を持つ行を効率的に集計するために TiDB で広く使用されている集計演算子です。TiDB v8.0.0 では、処理速度をさらに向上させるための実験的機能として並列 HashAgg が導入されています。メモリリソースが不足している場合、並列 HashAgg は一時的にソートされたデータをディスクに書き出し、過剰なメモリ使用によって発生する潜在的な OOM リスクを回避します。これにより、ノードの安定性を維持しながらクエリ パフォーマンスが向上します。v8.2.0 では、この機能が一般提供 (GA) され、デフォルトで有効になっているため、 tidb_executor_concurrencyを使用して並列 HashAgg の同時実行を安全に構成できます。
    構文外部キー(v8.5.0 で GA)外部キーは、テーブル間の関係を確立し、データの一貫性と整合性を保証するデータベースの制約です。外部キーは、子テーブルで参照されるデータが親テーブルに存在することを保証し、無効なデータの挿入を防止します。外部キーはカスケード操作 (削除または更新時の自動同期など) もサポートし、ビジネス ロジックの実装を簡素化し、データ関係を手動で維持する複雑さを軽減します。
    ベクトル検索(実験的、v8.4.0 で導入)ベクトル検索は、データセマンティクスに基づく検索方法であり、より関連性の高い検索結果を提供します。AI と大規模言語モデル (LLM) のコア関数の 1 つとして、ベクトル検索は、検索拡張生成 (RAG)、セマンティック検索、推奨システムなど、さまざまなシナリオで使用できます。
    DB 操作と可観測性メモリテーブルに TiKV および TiDB CPU 時間を表示する(v8.4.0 で導入) CPU 時間がシステム テーブルに統合され、セッションや SQL の他のメトリックと一緒に表示されるようになったため、CPU 消費量の多い操作を複数の観点から観察し、診断の効率を向上させることができます。これは、インスタンス内の CPU スパイクやクラスター内の読み取り/書き込みホットスポットなどのシナリオを診断する場合に特に便利です。
    テーブルまたはデータベースごとに集計された TiKV CPU 時間の表示をサポート(v8.4.0 で導入)ホットスポットの問題が個々の SQL ステートメントによって発生していない場合は、 Top SQLのテーブルまたはデータベース レベル別に集計された CPU 時間を使用すると、ホットスポットの原因となっているテーブルまたはアプリケーションを迅速に特定できるため、ホットスポットと CPU 消費の問題の診断効率が大幅に向上します。
    バックアップと復元 (BR) は、 AWS SDK for Rust を使用して外部storageにアクセスします (v8.5.0 で導入) BR は、TiKV から Amazon S3 などの外部storageにアクセスするために、元の Rusoto ライブラリをAWS SDK for Rustに置き換えます。この変更により、 IMDSv2EKS Pod Identityなどの AWS 機能との互換性が向上します。
    Securityスナップショット バックアップ データログ バックアップ データのクライアント側暗号化 (v8.5.0 で GA)バックアップ データをバックアップstorageにアップロードする前に、バックアップ データを暗号化して、storage中および転送中のセキュリティを確保できます。

    機能の詳細

    スケーラビリティ

    • スキーマ キャッシュのメモリ制限の設定が一般提供 (GA) されました。テーブル数が数十万、あるいは数百万に達すると、この機能によりスキーマ メタデータのメモリ使用量が大幅に削減されます#50959 @ 天菜まお @ 翻訳: @ 翻訳者 @ タンジェンタ

      SaaS シナリオによっては、テーブルの数が数十万、あるいは数百万に達する場合があり、スキーマ メタデータが大量のメモリを消費することがあります。この機能を有効にすると、TiDB は Least Recently Used (LRU) アルゴリズムを使用して対応するスキーマ メタデータをキャッシュして削除し、メモリ使用量を効果的に削減します。

      v8.4.0 以降では、この機能はデフォルトで有効になっており、デフォルト値は536870912 (つまり 512 MiB) です。必要に応じて変数tidb_schema_cache_size使用して調整できます。

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

    • PDのリージョン情報クエリサービス(GA) #7431 @ ok江のスケーラビリティを強化するために、アクティブPDFollower機能を提供します。

      多数のリージョンを持つ TiDB クラスターでは、ハートビートの処理とタスクのスケジュール設定のオーバーヘッドが増加するため、PD リーダーの CPU 負荷が高くなる可能性があります。クラスターに多数の TiDB インスタンスがあり、リージョン情報に対する要求の同時実行性が高い場合、PD リーダーの CPU 負荷がさらに増加し​​、PD サービスが利用できなくなる可能性があります。

      高可用性を確保するために、TiDB v7.6.0 では、PD のリージョン情報クエリ サービスのスケーラビリティを強化する実験的機能として Active PD Follower が導入されています。v8.5.0 では、この機能が一般提供 (GA) されます。システム変数pd_enable_follower_handle_regionONに設定することで、Active PD Follower機能を有効にすることができます。この機能を有効にすると、TiDB はリージョン情報要求をすべての PD サーバーに均等に分散し、PD フォロワーもリージョン要求を処理できるため、PD リーダーの CPU 負荷が軽減されます。

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

    パフォーマンス

    • TiDB によるテーブル作成の高速化が一般提供 (GA) され、データ移行とクラスター初期化時間が大幅に短縮されます#50052 @ D3ハンター @ 翻訳者

      TiDB v7.6.0 では、システム変数tidb_ddl_versionによって制御される高速テーブル作成が実験的機能として導入されています。v8.0.0 以降では、このシステム変数の名前がtidb_enable_fast_create_tableに変更されています。

      v8.5.0 では、TiDB の高速テーブル作成が一般提供 (GA) され、デフォルトで有効になっています。この機能は、データ移行およびクラスターの初期化中に、数百万のテーブルの迅速な作成をサポートし、操作時間を大幅に短縮します。

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

    • TiKVはMVCCインメモリエンジン(IME)をサポートしており、広範なMVCC履歴バージョン#16141 @ スペードA-タン @ 栄光 @ 金星の上のスキャンを含むクエリを高速化します。

      レコードが頻繁に更新される場合、または TiDB が履歴バージョンを長期間 (たとえば 24 時間) 保持する必要がある場合、MVCC バージョンの蓄積によってスキャン パフォーマンスが低下する可能性があります。TiKV MVCC インメモリ エンジンは、最新の MVCC バージョンをメモリにキャッシュし、高速 GC メカニズムを使用して履歴バージョンをメモリから削除することで、スキャン パフォーマンスを向上させます。

      v8.5.0 以降、TiKV では MVCC インメモリ エンジンが導入されています。TiKV クラスター内の MVCC バージョンの蓄積によってスキャン パフォーマンスが低下する場合は、TiKV 構成パラメータin-memory-engine.enableを設定することで、TiKV MVCC インメモリ エンジンを有効にしてスキャン パフォーマンスを向上させることができます。

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

    信頼性

    • PD #5739 @ rleungxで処理されるリクエストの最大レートと同時実行数の制限をサポート

      PD に突然大量のリクエストが送信されると、ワークロードが増大し、PD のパフォーマンスに影響を及ぼす可能性があります。v8.5.0 以降では、 pd-ctl使用して PD によって処理されるリクエストの最大レートと同時実行性を制限し、PD の安定性を向上させることができます。

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

    構文

    • 外部キーのサポート (GA) #36982 @ ヤンケオ @ クレイジーcs520

      外部キー機能は、v8.5.0 で一般提供 (GA) されます。外部キー制約は、データの一貫性と整合性を確保するのに役立ちます。カスケード更新と削除のサポートにより、テーブル間の外部キー関係を簡単に確立でき、データ管理が簡素化されます。この機能により、複雑なデータ関係を持つアプリケーションのサポートが強化されます。

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

    • DDLジョブのオンライン変更をサポートするためにADMIN ALTER DDL JOBSステートメントを導入する#57229 @ ふーふー @ タンジェンタ

      v8.3.0 以降では、変数tidb_ddl_reorg_batch_sizetidb_ddl_reorg_worker_cntセッション レベルで設定できます。その結果、これら 2 つの変数をグローバルに設定しても、実行中のすべての DDL ジョブには影響しなくなりました。これらの変数の値を変更するには、まず DDL ジョブをキャンセルし、変数を調整してから、ジョブを再送信する必要があります。

      TiDB v8.5.0 ではADMIN ALTER DDL JOBSステートメントが導入され、特定の DDL ジョブの変数値をオンラインで調整できるようになりました。これにより、リソース消費とパフォーマンスを柔軟にバランスさせることができます。変更は個々のジョブに限定されるため、影響をより制御しやすくなります。例:

      • ADMIN ALTER DDL JOBS job_id THREAD = 8; : 指定された DDL ジョブのtidb_ddl_reorg_worker_cntオンラインで調整します。
      • ADMIN ALTER DDL JOBS job_id BATCH_SIZE = 256; : 指定されたジョブのtidb_ddl_reorg_batch_sizeオンラインで調整します。
      • ADMIN ALTER DDL JOBS job_id MAX_WRITE_SPEED = '200MiB'; : 各 TiKV ノードへのインデックス データの書き込みトラフィックをオンラインで調整します。

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

    Security

    • BRは、フルバックアップデータとログバックアップデータの両方のクライアント側暗号化をサポートします(GA) #28640 #56433 @ ジョッカウ @ トリスタン1900

      • 完全バックアップ データのクライアント側暗号化 (TiDB v5.3.0 で実験的的に導入) により、カスタム固定キーを使用してクライアント側でバックアップ データを暗号化できるようになります。

      • ログ バックアップ データのクライアント側暗号化 (TiDB v8.4.0 で実験的的に導入) を使用すると、次のいずれかの方法を使用して、クライアント側でログ バックアップ データを暗号化できます。

        • カスタム固定キーを使用して暗号化する
        • ローカルディスクに保存されたマスターキーを使用して暗号化する
        • キー管理サービス (KMS) によって管理されるマスターキーを使用して暗号化する

      v8.5.0 以降では、両方の暗号化機能が一般提供 (GA) され、クライアント側のデータ セキュリティが強化されます。

      詳細についてはバックアップデータを暗号化するおよびログバックアップデータを暗号化する参照してください。

    • 保存時の TiKV 暗号化はGoogle Cloud キー管理サービス (Google Cloud KMS) (GA) #8906 @ 栄光をサポートします

      TiKV は、保存時の暗号化技術を使用して保存データを暗号化することで、データのセキュリティを確保します。この技術の中核となるのは、適切なキー管理です。v8.0.0 では、保存時の TiKV 暗号化は、マスター キー管理に Google Cloud KMS を使用することを試験的にサポートしています。

      v8.5.0 以降では、Google Cloud KMS を使用した保存時の暗号化が一般提供 (GA) されます。この機能を使用するには、まず Google Cloud でキーを作成し、次に TiKV 構成ファイルの[security.encryption.master-key]セクションを構成します。

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

    互換性の変更

    注記:

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

    行動の変化

    • 非厳密モード( sql_mode = '' )では、 NULL以外の列にNULL値を#55457すると、MySQL互換性のためにエラーが返されるようになりました。7 @ ジョーチェン
    • ALTER TABLE ... DROP FOREIGN KEY IF EXISTS ...ステートメントはサポートされなくなりました。3 #56703 ヤンケオ

    システム変数

    変数名タイプを変更説明
    tidb_enable_fast_create_table修正済みさらにテストを行った後、デフォルト値をOFFからONに変更します。つまり、 テーブル作成の高速化機能はデフォルトで有効になります。
    tidb_ddl_reorg_max_write_speed新しく追加された各 TiKV ノードの書き込み帯域幅を制限し、インデックス作成アクセラレーションが有効になっている場合にのみ有効になります ( tidb_ddl_enable_fast_reorg変数によって制御されます)。たとえば、変数を200MiBに設定すると、最大書き込み速度が 200 MiB/s に制限されます。

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

    コンフィグレーションファイルまたはコンポーネントコンフィグレーションパラメータタイプを変更説明
    ティビdeprecate-integer-display-length修正済みv8.5.0 以降、整数表示幅機能は非推奨になりました。この構成項目のデフォルト値はfalseからtrueに変更されました。
    ティクヴraft-client-queue-size修正済みデフォルト値を8192から16384に変更します。
    PDpatrol-region-worker-count新しく追加されたリージョンのヘルス状態を検査するときにチェッカーによって作成される同時実行オペレーターの数を制御します。
    BR--checksum修正済みデフォルト値をtrueからfalseに変更します。これにより、 BR は、バックアップ パフォーマンスを向上させるために、フル バックアップ中にテーブル レベルのチェックサムをデフォルトで計算しなくなります。

    オペレーティング システムとプラットフォームの要件の変更

    TiDB をアップグレードする前に、オペレーティング システムのバージョンがOSおよびプラットフォームの要件を満たしていることを確認してください。

    • CentOS Linux のサポート終了によると、CentOS Linux 7 のアップストリームサポートは 2024 年 6 月 30 日に終了します。TiDB は、8.4 DMR バージョンから CentOS 7 のサポートを終了します。Rocky Linux 9.1 以降のバージョンを使用することをお勧めします。CentOS 7 上の TiDB クラスターを v8.4.0 以降にアップグレードすると、クラスターが使用できなくなります。
    • Red Hat Enterprise Linux ライフサイクルによると、Red Hat Enterprise Linux 7 のメンテナンスサポートは 2024 年 6 月 30 日に終了します。TiDB は 8.4 DMR バージョンから Red Hat Enterprise Linux 7 のサポートを終了します。Rocky Linux 9.1 以降のバージョンを使用することをお勧めします。Red Hat Enterprise Linux 7 上の TiDB クラスターを v8.4.0 以降にアップグレードすると、クラスターが使用できなくなります。

    削除された機能

    • 以下の機能は削除されました:

      • v8.4.0 では、 TiDBBinlog​​削除されました。v8.3.0 以降では、 TiDB Binlog は完全に非推奨です。増分データ レプリケーションの場合は、代わりにティCDC使用します。ポイントインタイム リカバリ (PITR) の場合は、 ピトル使用します。TiDB クラスターを v8.4.0 以降のバージョンにアップグレードする前に、必ず TiCDC と PITR に切り替えてください。
    • 以下の機能は将来のバージョンで削除される予定です:

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

    廃止された機能

    以下の機能は将来のバージョンで廃止される予定です。

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

    改善点

    • ティビ

      • 分散実行フレームワーク (DXF) #56017 @ ランス6716を無効にした場合のADD INDEXアクセラレーション機能のジョブキャンセルの応答速度を改善しました
      • 小さなテーブルへのインデックス追加速度の向上#54230 @ タンジェンタ
      • インデックス#57156 @ Cbcウェストウルフを追加する際の取り込みフェーズの最大速度を制限する新しいシステム変数tidb_ddl_reorg_max_write_speedを追加します。
      • 場合によってはinformation_schema.tablesクエリのパフォーマンスを向上#57295 @ タンジェンタ
      • より多くの DDL ジョブパラメータを動的に調整するサポート#57526 @ ふーふー
      • パーティション式#56230 @ 定義2014のすべての列を含むグローバル インデックスをサポートします。
      • 範囲クエリシナリオ#56673 @ 定義2014でリストパーティションテーブルのパーティションプルーニングをサポート
      • FixControl#46177 をデフォルトで有効にして、場合によってはインデックス範囲スキャンではなくテーブル全体のスキャンが誤って選択される問題を修正します#46177 @ テリー・パーセル
      • 内部推定ロジックを改善し、複数列および複数値インデックスの統計をより有効に活用して、複数値インデックス#56915 @ 時間と運命を含む特定のクエリの推定精度を向上させます。
      • 特定のシナリオにおけるフルテーブルスキャンのコスト見積もりを改善し、フルテーブルスキャンを誤って選択する可能性を減らします#57085 @ テリー・パーセル
      • 統計の同期ロードに必要なデータ量を最適化して、ロードパフォーマンスを向上させる#56812 @ ウィノロス
      • OUTER JOINが一意のインデックスとORDER BY ... LIMIT句を含む特定のケースで実行プランを最適化し、実行効率#56321 @ ウィノロスを向上させます。
    • ティクヴ

      • 別のスレッドを使用してレプリカをクリーンアップし、 Raft の読み取りと書き込みの重要なパスの安定したレイテンシーを確保します#16001 @ ビシェン
      • SIMD #17290 @ エリック・ゼクアンサポートすることでベクトル距離関数のパフォーマンスを向上
    • PD

      • マイクロサービスモードと非マイクロサービスモード間のtsoのサービスの動的切り替えをサポート#8477 @ rleungx
      • pd-ctl config出力#8694 @ 翻訳者の特定のフィールドの大文字小文字の形式を最適化します
      • ストア制限 v2一般公開(GA)される#8865 @ 翻訳者
      • リージョン検査の同時実行の設定をサポート (実験的) #8866 @ 翻訳者
    • TiFlash

    • ツール

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

        • バックアップ中の不要なログ出力を削減#55902 @ リーヴルス
        • 暗号化キーのエラーメッセージを最適化--crypter.key #56388 @ トリスタン1900
        • データベース作成時にBRの同時実行性を高めて、データ復元パフォーマンスを向上させる#56866 @ リーヴルス
        • バックアップパフォーマンスを向上させるために、フルバックアップ中のテーブルレベルのチェックサム計算をデフォルトで無効にする( --checksum=false#56373 @ トリスタン1900
        • 各storageノードの接続タイムアウトを独立して追跡およびリセットするメカニズムを追加し、低速ノードの処理を強化してバックアップ操作のハングアップを防止します#57666 @ 3ポインター
      • TiDB データ移行 (DM)

        • DM クラスターの起動中に DM ワーカーが DM マスターに接続するための再試行を#4287 @ GMHDBJDに追加します。

    バグ修正

    • ティビ

      • PD から返されたリージョンメタデータにLeader情報が不足している場合に TiDB がリクエストを自動的に再試行せず、実行エラーが発生する可能性がある問題を修正しました#56757 @ 翻訳
      • 書き込み競合が発生したときに TTL タスクをキャンセルできない問題を修正#56422 @ ヤンケオ
      • TTLタスクをキャンセルした際に、対応するSQLが強制終了されない問題を修正#56511 @ lcwangchao
      • v6.5 から v7.5 以降にアップグレードされたクラスターで、既存の TTL タスクが予期せず頻繁に実行される問題を修正#56539 @ lcwangchao
      • INSERT ... ON DUPLICATE KEYステートメントがmysql_insert_id #55965 @ 天菜まおと互換性がない問題を修正
      • storageエンジン#56402 @ ヤンケオとして TiKV が選択されていない場合に TTL が失敗する可能性がある問題を修正しました
      • IMPORT INTOステートメント#56476 @ D3ハンターを使用してデータをインポートした後、 AUTO_INCREMENTフィールドが正しく設定されない問題を修正しました。
      • ADD INDEX #56930 @ ふーふーを実行するときに TiDB がインデックスの長さ制限をチェックしない問題を修正しました
      • RECOVER TABLE BY JOB JOB_ID;実行すると TiDB がpanicになる可能性がある問題を修正#55113 @ クレイジーcs520
      • 古い読み取りが読み取り操作のタイムスタンプを厳密に検証しない問題を修正しました。その結果、TSO と実際の物理時間#56809 @ ミョンケミンタの間にオフセットが存在する場合に、トランザクションの一貫性にわずかながら影響が出る可能性があります。
      • DDL 所有者ノードが#56506 @ タンジェンタに切り替えられた後、TiDB が以前の進行状況から Reorg DDL タスクを再開できない問題を修正しました。
      • Distributed eXecution Framework (DXF) の監視パネルの一部のメトリックが不正確であるという問題を修正#57172 @ ふーふー #56942 @ ふーふー
      • REORGANIZE PARTITION特定のケースでエラー理由を返さない問題を修正#56634 @ ミョンス
      • 大文字と小文字の区別により、 INFORMATION_SCHEMA.TABLESクエリすると誤った結果が返される問題を修正#56987 @ ジョーチェン
      • 共通テーブル式 (CTE) に複数のデータ コンシューマーがあり、1 つのコンシューマーがデータを読み取らずに終了した場合に発生する可能性のある不正なメモリアクセスの問題を修正しました#55881 @ 風の話し手
      • 異常終了時にINDEX_HASH_JOINアップする可能性がある問題を修正#54055 @ うわー
      • NULL#53546 @ つじえもん処理するときにTRUNCATEステートメントが誤った結果を返す問題を修正しました
      • CAST AS CHAR関数が型推論エラーにより誤った結果を返す問題を修正#56640 @ ジムララ
      • 型推論エラーにより一部の関数の出力で文字列が切り捨てられる問題を修正#56587 @ ジョーチェン
      • ADDTIME()およびSUBTIME()関数の最初の引数が日付型#57569 @ 翻訳者の場合に誤った結果を返す問題を修正しました
      • 非厳密モードで無効なNULL値が挿入される問題を修正 ( sql_mode = '' ) #56381 @ ジョーチェン
      • UPDATE文がENUM#56832 @ xheboxの値を誤って更新する問題を修正しました。
      • tidb_low_resolution_tso変数を有効にすると、 SELECT FOR UPDATEステートメント#55468 @ 天菜まおの実行中にリソース リークが発生する問題を修正しました。
      • JSON_TYPE()関数がパラメータ タイプを検証せず、JSON 以外のデータ型が渡されたときにエラーが返されない問題を修正しました#54029 @ ヤンケオ
      • PREPAREステートメントで JSON関数を使用すると実行エラーが発生する可能性がある問題を修正#54044 @ ヤンケオ
      • BIT型からCHAR型にデータを変換すると TiKV パニック#56494 @ lcwangchao発生する可能性がある問題を修正しました
      • CREATE VIEWステートメントで変数またはパラメータを使用してもエラーが報告されない問題を修正#53176 @ ミョンス
      • JSON_VALID()関数が誤った結果を返す問題を修正#56293 @ ヤンケオ
      • tidb_ttl_job_enable変数が無効になった後、TTL タスクがキャンセルされない問題を修正#57404 @ ヤンケオ
      • RANGE COLUMNSパーティション関数とutf8mb4_0900_ai_ci照合順序を同時に使用すると、クエリ結果#57261 @ 定義2014正しくなくなる可能性がある問題を修正しました。
      • 改行文字で始まるプリペアドステートメントを実行すると、配列が範囲外になるランタイム エラーを修正しました#54283 @ 定義2014
      • UTC_TIMESTAMP()関数の精度の問題を修正します。たとえば、精度を高く設定しすぎます#56451 @ チャゲロ
      • UPDATE DELETE IGNOREステートメントで外部キーエラーが省略されない問題を修正#56678 INSERT ヤンケオ
      • information_schema.cluster_slow_queryテーブルをクエリするときに、時間フィルターが追加されていない場合、最新のスロー ログ ファイルのみがクエリされる問題を修正しました#56100 @ クレイジーcs520
      • TTL テーブル#56934 @ lcwangchaoのメモリリークの問題を修正
      • ステータスwrite_onlyのテーブルに対して外部キー制約が有効にならず、ステータスnon-publicのテーブルを#55813 @ ヤンケオで使用できない問題を修正しました。
      • NATURAL JOINまたはUSING節の後にサブクエリを使用するとエラー#53766 @ ダッシュ12653が発生する可能性がある問題を修正しました
      • CTE にORDER BYLIMIT 、またはSELECT DISTINCT節が含まれており、別の CTE の再帰部分によって参照されている場合、誤ってインライン化され、実行エラー#56603 @ エルサ0520が発生する可能性がある問題を修正しました。
      • VIEWで定義されたCTEが誤ってインライン化される問題を修正#56582 @ エルサ0520
      • 外部キー#56456 @ ホーキングレイを含むテーブル構造をインポートするときに Plan Replayer がエラーを報告する可能性がある問題を修正しました。
      • 配置ルール#54961 @ ホーキングレイを含むテーブル構造をインポートするときに Plan Replayer がエラーを報告する可能性がある問題を修正しました。
      • ANALYZE使用してテーブルの統計情報を収集する場合、テーブルに仮想的に生成された列の式インデックスが含まれていると、実行時にエラー#57079 @ ホーキングレイが報告される問題を修正しました。
      • DROP DATABASEステートメントが統計#57227 @ ラスティン170506の対応する更新を正しくトリガーしない問題を修正しました。
      • CTE でデータベース名を解析するときに間違ったデータベース名#54582 @ ホーキングレイが返される問題を修正しました
      • DUMP STATS統計を JSON #56083 @ ホーキングレイに変換するときにヒストグラムの上限と下限が壊れる問題を修正
      • EXISTSサブクエリの結果が、さらに代数演算に関係する場合、MySQL #56641 @ 風の話し手の結果と異なる可能性がある問題を修正しました。
      • エイリアス#56726 @ ホーキングレイを持つマルチテーブルDELETEステートメントに対して実行プラン バインディングを作成できない問題を修正しました。
      • 複雑な述語を簡略化するときにオプティマイザが文字セットと照合順序を考慮せず、実行エラーが発生する可能性がある問題を修正しました#56479 @ ダッシュ12653
      • Grafana のStats Healthy Distributionパネルのデータが正しくない可能性がある問題を修正#57176 @ ホーキングレイ
      • クラスター化インデックス#57627 @ ウィノロスを持つテーブルをクエリするときにベクトル検索が誤った結果を返す可能性がある問題を修正しました
    • ティクヴ

      • 読み取りスレッドがRaft Engine#17383 @ リクササシネーターのMemTable内の古いインデックスにアクセスしたときに発生するpanic問題を修正しました。
      • 多数のトランザクションが同じキーのロック解除待ち行列に入っていて、キーが頻繁に更新される場合、デッドロック検出に過度の負荷がかかり、TiKV OOM 問題#17394 @ ミョンケミンタが発生する可能性がある問題を修正しました。
      • リソース制御のバックグラウンドタスクのCPU使用率が2回カウントされる問題を修正#17603 @ 栄光
      • CDC内部タスク#17696 @ 3エースショーハンドの蓄積によりTiKV OOMが発生する可能性がある問題を修正
      • raft-entry-max-size高く設定しすぎると、大量のバッチ書き込みによってパフォーマンスジッターが発生する問題を修正#17701 @ スペードA-タン
      • リージョンを#17602リクササシネーターに分割した後、リーダーをすぐに選出できない問題を修正しました。
      • RADIANS()またはDEGREES()関数を含むクエリを実行するときに TiKV がpanicになる可能性がある問題を修正#17852 @ ゲンリキ
      • すべての休止状態の領域が#17101 @ いいえで起動したときに書き込みジッターが発生する可能性がある問題を修正しました
    • PD

      • ホットスポット キャッシュ#8698 @ 翻訳者のメモリリーク問題を修正
      • リソース グループ セレクターがどのパネルでも有効にならない問題を修正#56572 @ 栄光
      • 削除されたリソース グループが監視パネル#8716 @ アンドレ・ムーシュに引き続き表示される問題を修正しました
      • リージョン同期の読み込みプロセス中の不明瞭なログの説明を修正#8717 @ 翻訳者
      • ラベル統計#8700 @ 翻訳者のメモリリーク問題を修正
      • tidb_enable_tso_follower_proxyから0またはOFFを設定しても TSOFollowerプロキシ機能#8709 @ じゃがいもを無効にできない問題を修正しました。
    • TiFlash

      • SUBSTRING()関数が特定の整数型のpos番目とlen引数をサポートせず、クエリ エラー#9473 @ ゲンリキが発生する問題を修正しました。
      • 分散storageおよびコンピューティングアーキテクチャ#9637 @ コラフィッシュでTiFlash書き込みノードをスケールアウトした後にベクトル検索のパフォーマンスが低下する可能性がある問題を修正しました。
      • 2 番目のパラメータが負の#9604 @ グオシャオゲの場合にSUBSTRING()関数が誤った結果を返す問題を修正しました
      • 最初のパラメータが定数#9522 @ グオシャオゲの場合にREPLACE()関数がエラーを返す問題を修正しました
      • LPAD()RPAD()関数が場合によっては誤った結果を返す問題を修正#9465 @ グオシャオゲ
      • ベクトルインデックスを作成した後、ベクトルインデックスを構築する内部タスクが予期せず中断されると、 TiFlash が破損したデータを書き込み、再起動できなくなる可能性がある問題を修正しました#9714 @ ジェイソン・ファン
    • ツール

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

        • 未完了の範囲ギャップが多すぎる場合のバックアップ中の OOM 問題を修正し、事前割り当てメモリ#53529 @ リーヴルスの量を減らします。
        • グローバルインデックスをバックアップできない問題を修正#57469 @ 定義2014
        • ログに暗号化された情報が出力される問題を修正#57585 @ ケニー
        • アドバンサーがロック競合を処理できない問題を修正#57134 @ 3ポインター
        • k8s.io/apiライブラリ バージョン#57790 @ ボーンチェンジャーにアップグレードして潜在的なセキュリティ脆弱性を修正します
        • クラスター内に多数のテーブルがあるが、実際のデータ サイズが小さい場合に PITR タスクがInformation schema is out of dateエラーを返す可能性がある問題を修正しました#57743 @ トリスタン1900
        • アドバンサー所有者が#58031 @ 3ポインターに切り替わったときに、ログ バックアップが予期せず一時停止状態になる可能性がある問題を修正しました。
        • tiup br restoreコマンドがデータベースまたはテーブルの復元中にターゲット クラスター テーブルが既に存在するかどうかのチェックを省略し、既存のテーブル#58168 @ リドリスを上書きする可能性がある問題を修正しました。
      • ティCDC

        • Debezium プロトコル#1799 @ 989898 円を使用するときに Kafka メッセージにキー フィールドが欠落する問題を修正しました
        • やり直しモジュールがエラー#11744 @ チャールズ・チュン96を適切に報告できない問題を修正
        • TiDB DDL 所有者の変更中に DDL タスクのスキーマ バージョンが非増分になったときに、TiCDC が誤って DDL タスクを破棄する問題を修正#11714 @ ウィリアム
      • TiDB Lightning

        • TiDB Lightning がTiKV #56114 @ フィシュウから送信されたサイズ超過のメッセージを受信できない問題を修正しました
        • 物理インポートモード#56814 @ D3ハンターを使用してデータをインポートした後にAUTO_INCREMENT値が高すぎる値に設定される問題を修正しました

    寄稿者

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

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