📣
TiDB Cloud Essential はパブリックプレビュー中です。このページは自動翻訳されたものです。原文はこちらからご覧ください。

TiDB 8.5.4 リリースノート

発売日:2025年11月27日

TiDB バージョン: 8.5.4

クイックアクセス: クイックスタート | 本番環境への展開

特徴

  • 特定のテーブルのデータの再配布をサポート(実験的) #63260 @ バッファフライ

    PDは、クラスター内のすべてのTiKVノードにデータが可能な限り均等に分散されるように自動的にスケジュールを設定します。ただし、この自動スケジューリングはクラスター全体に焦点を当てています。場合によっては、クラスター全体のデータ分散が均衡していても、特定のテーブルのデータがTiKVノード間で不均等に分散されている可能性があります。

    v8.5.4以降では、 SHOW TABLE DISTRIBUTIONのステートメントを使用して、特定のテーブルのデータがすべてのTiKVノード間でどのように分散されているかを確認できます。データ分散が不均衡な場合は、 DISTRIBUTE TABLEステートメントを使用してテーブルのデータを再分散し(実験的)、負荷分散を改善できます。

    特定のテーブルのデータの再配布は、タイムアウト制限のある1回限りのタスクであることに注意してください。タイムアウトまでに配布タスクが完了しない場合、タスクは自動的に終了します。

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

  • DDL文に埋め込まれたANALYZEサポート#57948 @ テリー・パーセル @ アイリンキッド

    この機能は、次のタイプの DDL ステートメントに適用されます。

    この機能を有効にすると、TiDBは新規または再編成されたインデックスがユーザーに表示される前に、自動的にANALYZE (統計収集)操作を実行します。これにより、インデックスの作成または再編成後に一時的に統計が利用できなくなることによる、オプティマイザの推定値の不正確さや潜在的なプラン変更を防止できます。

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

  • パーティションテーブルの非一意の列に対するグローバルインデックスの作成をサポート#58650 @ 定義2014 @ ミョンス

    バージョン8.3.0以降、TiDBではパーティションテーブルの一意の列にグローバルインデックスを作成してクエリパフォーマンスを向上できます。ただし、一意でない列へのグローバルインデックスの作成はサポートされていませんでした。バージョン8.5.4以降、TiDBはこの制限を撤廃し、パーティションテーブルの一意でない列にもグローバルインデックスを作成できるようになりました。これにより、グローバルインデックスの使い勝手が向上します。

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

  • TiFlash #10266 @ ゲンリチの正常なシャットダウンをサポート

    TiFlashサーバーをシャットダウンする際、 TiFlash は現在実行中の MPP タスクを、設定可能なタイムアウト時間の間継続させ、新しい MPP タスク要求を拒否するようになりました。デフォルトのタイムアウト時間は 600 秒ですが、設定項目flash.graceful_wait_shutdown_timeoutで調整できます。

    • タイムアウト期間が経過する前に実行中のすべての MPP タスクが終了した場合、 TiFlash は直ちにシャットダウンします。
    • タイムアウト期間が経過しても未完了の MPP タスクが残っている場合、 TiFlash は強制的にシャットダウンします。

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

  • パフォーマンス、スケーラビリティ、安定性を向上させる新しい TiCDCアーキテクチャオプションを導入#442 @ チャールズ・チャン96

    この新しいアーキテクチャは、TiCDC コア コンポーネントを再設計し、 古典的なTiCDCアーキテクチャの構成、使用法、API との互換性を維持しながら、データ処理ワークフローを最適化します。

    この新しいアーキテクチャを使用するように構成すると、TiCDCはほぼ線形のスケーラビリティを実現し、数百万のテーブルをより少ないリソース消費で複製できます。また、変更フィードのレイテンシーも短縮され、書き込みワークロードが高く、DDL操作が頻繁に行われ、クラスタのスケーリングが行われるシナリオにおいて、より安定したパフォーマンスが得られます。なお、この新しいアーキテクチャは現在約初期の制限です。

    新しいアーキテクチャを使用するには、TiCDC 構成項目newarchtrueに設定します。

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

互換性の変更

システム変数

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

MySQLの互換性

v8.5.4以降、TiDBはDECIMAL桁の列にデータを挿入する際の動作をMySQLに準拠させました。小数点以下の桁数が列の定義スケールを超える場合、TiDBは自動的に超過桁数を切り捨て、超過小数点以下の桁数に関係なく、切り捨てられたデータを正常に挿入します。以前のバージョンのTiDBでは、挿入されたDECIMAL値の小数点以下の桁数が72を超えると、挿入は失敗し、エラーが返されていました。詳細については、 JDBC を使用して TiDB に接続する参照してください。

改善点

  • ティドブ

    • INサブクエリ#58829 @ qw4990の Semi テーブル結合にsemi_join_rewriteヒントを適用することをサポート
    • tidb_opt_ordering_index_selectivity_ratioシステム変数が#62817テリー・パーセルで効果を発揮するときの推定戦略を最適化する
    • オプティマイザの選択ロジックを調整して、特定のシナリオで新しく作成されたインデックスが選択される可能性を高めます#57948 @ テリー・パーセル
    • 少数の個別値(NDV)を持つ列のクエリ推定ロジックを最適化#61792 @ テリー・パーセル
    • LIMIT OFFSET #45077 @ qw4990を含むインデックス結合クエリの推定戦略を最適化する
    • 統計が時間#58068 @ テリー・パーセルで収集されない場合の範囲外推定戦略を最適化する
    • デバッグを容易にするために、Grafanaのパフォーマンス概要> SQL実行時間概要パネルにbackoffメトリックを追加します#61441 @ dbsid
    • 監査ログプラグイン#63525 @ ヤンケオにステートメント ID 情報を追加します
  • TiKV

    • BRモジュール内の特定の自動回復可能なエラーのログレベルをERRORからWARNに変更して、不要なアラート#18493 @ ユジュンセンを削減します。
    • 不要なアラートを減らすために、特定の TiKV エラーのログレベルをERRORからWARNに変更します#18745 @ 終了コード1
    • RaftモジュールのGCチェックプロセスを2つのフェーズに分割して、リージョン#18695 @ v01dスターの冗長MVCCバージョンのガベージコレクションの効率を向上させます。
    • GCセーフポイントとRocksDB統計に基づいてMVCC冗長性を計算し、圧縮#18697 @ v01dスターの効率と精度を向上させます。
    • リージョンMVCCのGC処理ロジックをGCワーカースレッドで実行するように変更し、GC処理ロジック全体を統一する#18727 @ v01dスター
    • デフォルトの gRPC スレッド プール サイズの計算方法を最適化し、固定値ではなく CPU クォータの合計に基づいて動的に計算するようにすることで、gRPC スレッド#18613 @ LykxSassinatorの不足によるパフォーマンスのボトルネックを回避します。
    • 多数の SST ファイルがある環境での非同期スナップショットおよび書き込み操作のテールレイテンシーを最適化します#18743 @ コナー1996
  • PD

    • 不要なエラーログを#9370 バッファフライ削減
    • Golangのバージョンを1.23.0から1.23.12にアップグレードし、関連する依存関係#9788 @ Jmポテトを更新します。
    • テーブルレベルでの領域分散をサポートし、 scatter-roleengine次元にわたってバランスのとれた分散を実現します#8986 @ バッファフライ
  • TiFlash

    • 不要なデータの読み取りをスキップしてTableScanパフォーマンスを向上#9875 @ ゲンリキ
    • TiFlash #10361 @ ジェイソン・ファンで、多数の列とスパース データ (つまり、 NULLまたは空の値が多い) を含むTableScanの広いテーブルのパフォーマンスを最適化します。
    • 多数のテーブル#10357 @ ロイド・ポティガーを持つクラスターにベクトル インデックスを追加することによって発生するTiFlash CPU オーバーヘッドを削減します。
    • 無駄なRaftコマンドを処理するときに不要なログ出力を最小限に抑えてログ量を減らす#10467 @ ジェイソン・ファン
    • TiFlash #10487 @ ジェイソン・ファンの小さなパーティションテーブルでTableScanパフォーマンスを向上
  • ツール

    • TiDB データ移行 (DM)

      • アップストリームGTID_MODE #12167 @ オリバーS929を取得する際に大文字と小文字を区別しないマッチングをサポートします

バグ修正

  • ティドブ

    • tidb_isolation_read_engines tiflash #60869 @ ロイド・ポティガーに設定されている場合にuse indexヒントが有効にならない問題を修正しました
    • max_execution_time SELECT FOR UPDATEステートメント#62960 @ エキシウムに反映されない問題を修正
    • 月または年にわたる行数の推定値が大幅に過大評価される可能性がある問題を修正#50080 @ テリー・パーセル
    • 準備済みステートメントのDecimal型の処理が MySQL #62602 @ チャンルイ・ライアンと一致しない問題を修正しました
    • TRUNCATE()関数のショートパスが誤って処理される問題を修正#57608 @ xzhangxian1008
    • Out Of Quota For Local Temporary Spaceエラーが発生したときに、こぼれたファイルが完全に削除されない可能性がある問題を修正#63216 @ xzhangxian1008
    • INFORMATION_SCHEMAテーブルに対して正規表現を使用したクエリが誤った結果を返す可能性がある問題を修正しました#62347 @ リバー2000i
    • PD #58871 @ ジョーチェンからタイムスタンプを取得できなかった場合に TiDB がエラーを返さない問題を修正しました
    • MODIFY COLUMNステートメント#60264 @ 接線の実行中に、オーナー TiDB インスタンスと非オーナー TiDB インスタンス間でクエリ結果が異なる問題を修正しました。
    • パラメータ#63201 @ fzzf678を動的に変更した後、 ADMIN ALTER DDL JOBSステートメントで誤ったパラメータ値が表示される問題を修正しました。
    • トランザクション#62424 @ wjhuang2016内でインデックスを追加したときに GC セーフ ポイントが進まない問題を修正しました
    • 過度に大きな SST ファイルを L0 に取り込むとフロー制御#63466 @ Cbcウェストウルフがトリガーされる問題を修正しました
    • CPU対メモリ比が1:2 #60951 @ wjhuang2016のときにグローバルソートがブロックされる問題を修正
    • タスク数が#63896を超えると、保留中の Distributed eXecution Framework (DXF) タスクをキャンセルできない問題を修正しましたD3ハンター
    • DXFタスクがキャンセルされた後、他のタスクが#63927 @ D3ハンターで終了できない問題を修正しました
    • Apply演算子同時実行を有効にすると( tidb_enable_parallel_apply = on )、クローン実装#59863 @ ホーキングレイの不足によりプラン生成が失敗する問題を修正しました。
    • ATAN2関数を使用すると誤った結果が生成される可能性がある問題を修正#60093 @ グオシャオゲ
    • select 1 from dualインスタンスレベルのプランキャッシュ#63075 @ 時間と運命を使用できない問題を修正
    • 結合順序を変更するとプランナーが失敗する可能性がある問題を修正#61715 @ ホーキングレイ
    • バインディングでset_varヒントを使用すると変数が元の設定に復元されなくなる問題を修正#59822 @ wddevries
    • ONLY_FULL_GROUP_BY負の値に設定すると検証エラー#62617 @ アイリンキッドが発生する問題を修正しました
    • ONLY_FULL_GROUP_BYチェックで大文字と小文字が区別されない問題を修正#62672 @ アイリンキッド
    • DP結合順序アルゴリズムが誤ったプラン#63353 @ ウィノロスを生成する可能性がある問題を修正しました
    • 外部結合を内部結合に書き換えると誤った結果が生成される可能性がある問題を修正#61327 @ ホーキングレイ
    • 特定のクエリを実行すると内部panicが発生する可能性がある問題を修正#58600 @ 定義2014
    • 特定のALTER PARTITION操作#64084 @ ミョンスでグローバルインデックスが誤ったデータを読み取る可能性がある問題を修正しました
    • グローバルインデックスが場合によっては誤った結果を返す可能性がある問題を修正#61083 @ 定義2014
    • character_set_results誤った文字を置き換えるのではなく切り捨てる問題を修正#61085 @ xhebox
    • ADD COLUMNUPDATEステートメントを同時に実行するとエラー#60047 @ L-メープルが発生する可能性がある問題を修正しました
    • マージ結合でコスト#62917 @ qw4990を計算するときにフィルター条件が省略される可能性がある問題を修正しました
  • PD

    • PDクライアントの再試行戦略が正しく初期化されない問題を修正#9013 @ rleungx
    • TSO HTTP API /configおよび/membersが誤った結果#9797 @ lhy1024を返す問題を修正しました
    • TSO Follower Proxy #9188 @ テーマの誤ったエラー処理ロジックを修正しました
    • バケットレポートを無効にした後でもバケットの分割が機能する問題を修正#9726 @ バッファフライ
    • リソース マネージャーがトークンを誤って割り当て、クエリが#9455 @ Jmポテトでスタックする問題を修正しました。
    • PDリーダーが#9602 okJiangで切り替えた後に配置ルールが有効にならない問題を修正しました
    • PD が科学表記法の大きな数値を解析できず、その結果一部の TTL 関連の設定が有効にならない問題を修正#9343 @ lhy1024
  • TiFlash

    • クエリ対象の列にNULL値が#10340 @ ロイド・ポティガーで多数含まれている場合にクエリが失敗する可能性がある問題を修正しました
    • TiFlash がRU 消費量#10380 @ ジンヘリンの統計を水増し生成する問題を修正しました
    • 分散storageとコンピューティングアーキテクチャ#10278 @ ジェイソン・ファンで低速クエリが存在する場合にTiFlash がOOM に遭遇する可能性がある問題を修正しました
    • 分散storageおよびコンピューティングアーキテクチャ#10424 @ ジェイソン・ファンでTiFlashと S3 の間でネットワークパーティションが発生すると、 TiFlash が無期限に再試行する可能性がある問題を修正しました。
    • FLOOR()CEIL()関数のパラメータがDECIMAL#10365 @ チャンルイ・ライアンの場合に誤った結果を返す可能性がある問題を修正しました
  • ツール

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

      • ログバックアップのzstd圧縮が有効にならず、出力が圧縮されない問題を修正#18836 @ 3ポイントシュート
      • Azure Blob Storage #18410 @ ユジュンセンにデータをバックアップするときにフラッシュ操作が時々遅くなる問題を修正しました
      • ファイルの削除に失敗した場合に発生する可能性のある問題log truncateを修正#63358 @ ユジュンセン
      • バックアップ中に--checksumfalseに設定すると、 #60978 @ リーヴルスを復元した後にmysql.stats_metaテーブルのcount列が0なる可能性がある問題を修正しました。
      • これらのサービスの帯域幅制限が有効になっている場合に、 BRがS3互換storageサービスからデータを復元できない可能性を低減します#18846 @ ケニーtm
      • log backup observerリージョンの観測を失い、ログ バックアップの進行が#18243 @ リーヴルスに進まなくなる可能性がある問題を修正しました。
      • バックアップされたテーブルに特定の特別なスキーマ#63663 @ リドリスRが含まれている場合にrestore point作成が失敗する問題を修正しました
    • TiCDC

      • 仮想列#12241 @ wk989898を含む列型パーティションディスパッチャを構成するときに発生する可能性のあるpanicを修正しました。
      • DDL プラー#12244 @ wk989898を閉じるときに発生する可能性のあるpanicを修正しました
      • filter構成#12286 @ アズドンメンignore-txn-start-tsパラメータを通じてサポートされていない DDL タイプのフィルタリングをサポートします
      • Azure Blob Storage をダウンストリーム#12277 @ ズラクツィアとして使用すると、変更フィード タスクがスタックする可能性がある問題を修正しました。
      • DROP FOREIGN KEY DDLが下流#12328 @ 3エースショーハンドに複製されない問題を修正
      • リージョンサブスクリプション#19048 @ 3エースショーハンド中にロールバックおよび事前書き込みエントリが発生すると TiCDC がpanicになる可能性がある問題を修正しました。
      • TiKV のアサーションエラーにより TiCDC がpanicになる可能性がある問題を修正#18498 @ タランガ

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