TiDB 7.5.1 リリースノート
発売日: 2024年2月29日
TiDB バージョン: 7.5.1
クイックアクセス: クイックスタート | 実稼働環境への導入
互換性の変更
- Security強化モード (SEM) で
require_secure_transport
~ON
設定を禁止して、ユーザー#47665 @ 天菜まおの潜在的な接続問題を防ぎます。 - ログ印刷のオーバーヘッドを減らすために、 TiFlashはデフォルト値
logger.level
を"debug"
から"info"
#8641 @ ジェイソン・ファンに変更します。 - TiKV構成項目
gc.num-threads
を導入して、enable-compaction-filter
がfalse
#16101 @ トニーの場合のGCスレッド数を設定します。 - TiCDC Changefeed、次の新しい構成項目が導入されています。
compression
: REDOログファイルの圧縮動作を設定できます#10176 @ スドジsink.cloud-storage-config
: オブジェクトstorageにデータを複製するときに履歴データの自動クリーンアップを設定できます#10109 @ チャールズ・チュン96consistent.flush-concurrency
: 単一のREDOファイルのアップロードの同時実行性を設定できます#10226 @ スドジ
改善点
ティビ
DDLスキーマの再ロードプロセス中に
tikv_client_read_timeout
使用して、クラスタ#48124 @ 翻訳でのメタリージョンLeaderの読み取り不可の影響を軽減します。リソース制御に関する可観測性を強化する#49318 @ 栄光 @ バッファフライ @ ノルーシュ
リソース グループを使用してアプリケーションのワークロードを分離するユーザーが増えるにつれて、リソース コントロールはリソース グループに基づいて拡張データを提供します。これにより、リソース グループのワークロードと設定を監視し、次のような問題を迅速に特定して正確に診断できるようになります。
- 遅いクエリ : リソース グループ名、リソース ユニット (RU) の消費量、およびリソースの待機時間を追加します。
- ステートメント要約表 : リソース グループ名、RU 消費量、リソースの待機時間を追加します。
- システム変数
tidb_last_query_info
に、SQL ステートメントによって消費されたロシアを示す新しいエントリru_consumption
を追加します。この変数を使用して、セッション内の最後のステートメントのリソース消費量を取得できます。 - リソース グループに基づいてデータベース メトリックを追加します: QPS/TPS、実行時間 (P999/P99/P95)、障害数、接続数。
FLASHBACK CLUSTER TO TSO
構文#48372 @ ボーンチェンジャーをサポートいくつかの型変換を処理する際の TiDB 実装を最適化し、関連する問題を修正#47945 #47864 #47829 #47816 @ ヤンケオ @ lcwangchao
非バイナリ照合順序が設定され、クエリに
LIKE
含まれる場合、オプティマイザは実行効率を向上させるためにIndexRangeScan
を生成します#48181 #49138 @ 時間と運命通常の
ADD INDEX
タスク#47758 @ タンジェンタにフォールバックする代わりに、複数の高速化されたADD INDEX
DDL タスクをキューに入れて実行できるようにします。
ティクヴ
TiFlash
ツール
バックアップと復元 (BR)
- より効率的なアルゴリズム#50613 @ リーヴルスを使用して、データ復元中に SST ファイルをマージする速度を向上します
- データ復元中にデータベースをバッチで作成するサポート#50767 @ リーヴルス
- データ復元中に SST ファイルをバッチで取り込むことをサポート#16267 @ 3ポインター
- ログバックアップ中にログとメトリックのグローバルチェックポイントの進行に影響を与える最も遅いリージョンの情報を出力します#51046 @ ユジュンセン
- 大規模なデータセットのシナリオで
RESTORE
ステートメントのテーブル作成パフォーマンスを向上#48301 @ リーヴルス - BRは
merge-schedule-limit
構成を0
#7148 @ ボーンチェンジャーに設定することでリージョンのマージを一時停止できます。 - BR例外処理メカニズムをリファクタリングして、未知のエラーに対する許容度を高める#47656 @ 3ポインター
ティCDC
- TiDBダッシュボード#10263 @ チャールズ・チュン96でのTiCDCログの検索をサポート
- サポートチェンジフィードの下流同期ステータスの照会 、TiCDC が受信した上流データの変更が下流システムに完全に同期されているかどうかを判断するのに役立ちます#10289 @ ホンユンヤン
- 並列処理#10098 @ チャールズ・チュン96を増やすことで、TiCDC がオブジェクトstorageにデータを複製する際のパフォーマンスが向上します。
TiDB Lightning
バグ修正
ティビ
- システム変数
tidb_service_scope
設定が有効にならない問題を修正#49245 @ うわー - 圧縮が有効になっている場合、通信プロトコルが16MB以上のパケットを処理できない問題を修正#47157 #47161 @ ドヴェーデン
approx_percentile
関数が TiDBpanic#40463 @ 翻訳者を引き起こす可能性がある問題を修正- 文字列関数の引数が
NULL
定数の場合に TiDB が暗黙的にfrom_binary
関数を挿入し、一部の式をTiFlash #49526 @ ヤンケオにプッシュダウンできない問題を修正しました。 HashJoin
演算子がディスク#50841 @ うわーにスピルできない場合に発生する可能性のある goroutine リークの問題を修正しました。BIT
型の列が一部の関数の計算に関係する場合にデコード失敗によりクエリ エラーが発生する可能性がある問題を修正しました#49566 #50850 #50855 @ ジフハウス- CTE クエリのメモリ使用量が制限#50337 @ グオシャオゲを超えた場合に発生する goroutine リークの問題を修正しました
- TiFlash の遅延マテリアライゼーションが関連列#49241 #51204 @ ロイド・ポティガーを処理するときに間違った結果が返される可能性がある問題を修正しました
- TiDB が履歴統計#49076 @ ホーキングレイを記録するときに TiDB のバックグラウンド ジョブ スレッドがpanicになる可能性がある問題を修正しました。
- TiDB がパーティション テーブル#49023 @ ホーキングレイのグローバル統計のヒストグラムをマージするときに発生する可能性のあるエラーを修正しました。
- パーティションが削除された後に
stats_meta
テーブルの履歴統計が更新されない問題を修正#49334 @ ハイラスティン Index Join
プローブ側#50382 @ アイリンキッドとして誤って選択された複数値インデックスによって発生する不正なクエリ結果の問題を修正しました。USE_INDEX_MERGE
ヒントが複数値インデックス#50553 @ アイリンキッドに反映されない問題を修正INFORMATION_SCHEMA.ANALYZE_STATUS
システム テーブル#48835 @ ハイラスティンをクエリするときにユーザーがエラーを受け取る可能性がある問題を修正しました- TiDB が
group by
#38756 @ ハイラスティンの定数値を誤って削除したために間違ったクエリ結果が発生する問題を修正しました。 - テーブル上の
ANALYZE
つのタスクのうちprocessed_rows
が、そのテーブルの合計行数#50632 @ ホーキングレイを超える可能性がある問題を修正しました。 tidb_enable_prepared_plan_cache
システム変数を有効にしてから無効にした後、EXECUTE
ステートメントを使用してPREPARE STMT
を実行すると、TiDB がpanicになる可能性がある問題を修正しました#49344 @ qw4990- クエリで
NATURAL JOIN
#32044 @ アイリンキッドが使用される場合に発生する可能性のあるColumn ... in from clause is ambiguous
エラーを修正します。 - 複数値インデックスを使用して空の JSON 配列にアクセスすると、誤った結果が返される可能性がある問題を修正しました#50125 @ ヤンケオ
- 集計関数をグループ計算に使用した場合に発生する可能性のある
Can't find column ...
エラーを修正#50926 @ qw4990 - 文字列型の変数に対する
SET_VAR
の制御が無効になる可能性がある問題を修正#50507 @ qw4990 tidb_server_memory_limit
#48741 @ 徐淮宇による長期メモリ圧迫により TiDB の CPU 使用率が高くなる問題を修正- 依存関係のある 2 つの DDL タスクの完了時間が#49498 @ タンジェンタと誤って順序付けられる問題を修正しました。
- 不正なオプティマイザヒントによって有効なヒントが無効になる可能性がある問題を修正#49308 @ ホーキングレイ
CHECK
制約の DDL ステートメントが#47632 @ ジフハウスでスタックする問題を修正しましたCHECK
制約のENFORCED
オプションの動作がMySQL 8.0 #47567 #47631 @ ジフハウスと一致しない問題を修正- CTEクエリが再試行プロセス#46522 @ 天菜まお中にエラー
type assertion for CTEStorageMap failed
を報告する可能性がある問題を修正 tidb_multi_statement_mode
モードが有効になっている場合に、インデックス検索を使用するDELETE
およびUPDATE
ステートメントでエラーが報告される可能性がある問題を修正しました#50012 @ タンジェンタWITH RECURSIVE
CTE を含むUPDATE
またはDELETE
ステートメントで誤った結果が生成される可能性がある問題を修正しました#48969 @ ウィノロス- 特定のシナリオでオプティマイザがTiFlash選択パスを DUAL テーブルに誤って変換する問題を修正#49285 @ アイリンキッド
- 同じクエリプランで
PLAN_DIGEST
値が#47634 @ キング・ディラン場合に異なる問題を修正 - 自動統計更新の時間枠を設定した後、その時間枠外でも統計が更新される可能性がある問題を修正#49552 @ ホーキングレイ
ENUM
型の列を結合キー#48991 @ ウィノロスとして使用するとクエリ結果が正しくなくなる問題を修正ORDER BY
句でUNIQUE
インデックス検索を実行するとエラー#49920 @ ジャッキーが発生する可能性がある問題を修正しました- 複数レベルのネストされた
UNION
クエリのLIMIT
無効になる可能性がある問題を修正#49874 @ 定義2014 - MPP によって計算された
COUNT(INT)
の結果が正しくない可能性がある問題を修正#48643 @ アイリンキッド ENUM
またはSET
型の無効な値を解析すると、SQL ステートメント エラー#49487 @ ウィノロスが直接発生する問題を修正しました。- TiDBがパニックを起こしてエラーを報告する問題を修正
invalid memory address or nil pointer dereference
#42739 @ Cbcウェストウルフ - 最初のサブノードとしてDUALテーブルを使用して
UNION ALL
実行するとエラー#48755 @ ウィノロスが発生する可能性がある問題を修正しました - 共通ヒントが
UNION ALL
文#50068 @ ホーキングレイで有効にならない問題を修正 - 正常なシャットダウン中に TiDBサーバーがpanicになる可能性がある問題を修正#36793 @ bb7133
- 一部のタイムゾーンで夏時間が正しく表示されない問題を修正#49586 @ 金星の上
- 静的
CALIBRATE RESOURCE
Prometheusデータ#49174 @ 栄光に依存している問題を修正 REPLACE INTO
文#34325 @ ヤンケオでヒントが使用できない問題を修正GROUP_CONCAT(ORDER BY)
構文を含むクエリを実行するとエラー#49986 @ アイリンキッドが返される可能性がある問題を修正しました- 監査ログ用のエンタープライズプラグインが使用されている場合に TiDBサーバーが大量のリソースを消費する可能性がある問題を修正#49273 @ lcwangchao
- 古いインターフェースを使用するとテーブル#49751 @ ホーキングレイのメタデータに不整合が生じる可能性がある問題を修正しました。
tidb_enable_collect_execution_info
無効にするとコプロセッサキャッシュがpanicになる問題を修正#48212 @ あなた06- パーティション列タイプが
DATETIME
#48814 @ クレイジーcs520の場合にALTER TABLE ... LAST PARTITION
実行が失敗する問題を修正 COM_STMT_EXECUTE
まで実行されたCOMMIT
またはROLLBACK
操作が、タイムアウトしたトランザクションを終了できない問題を修正しました#49151 @ ジグアン- ヒストグラムの境界に
NULL
#49823 @ アイリンキッドが含まれている場合、ヒストグラム統計が読み取り可能な文字列に解析されない可能性がある問題を修正しました。 - メモリ制限を超えると、共通テーブル式 (CTE) を含むクエリが予期せず停止する問題を修正#49096 @ アイリンキッド
- DDL 所有者がネットワークから分離された後に
ADD INDEX
実行すると、TiDB 分散実行フレームワーク (DXF) でデータが不整合になる問題を修正#49773 @ タンジェンタ AUTO_ID_CACHE=1
#50519 @ 天菜まおの自動インクリメント列を使用すると同時競合により自動インクリメント ID 割り当てでエラーが報告される問題を修正しました。- クエリに Apply 演算子が含まれており、
fatal error: concurrent map writes
エラーが発生すると TiDB がpanicになる可能性がある問題を修正しました#50347 @ シーライズ - DDL
jobID
が 0 #46296 @ ジフハウスに復元されたときに発生する TiDB ノードpanicの問題を修正しました。 STREAM_AGG()
CI #49902 @ うわーを誤って処理したためにクエリ結果が正しくない問題を修正しました- 多数のテーブルやパーティションを処理するときに TiDB ノードが OOM エラーに遭遇する可能性がある問題を軽減します#50077 @ ジムララ
LEADING
ヒントがUNION ALL
ステートメント#50067 @ ホーキングレイで有効にならない問題を修正- ネストされた
UNION
のクエリ#49377 @ アイリンキッドでLIMIT
とOPRDERBY
無効になる可能性がある問題を修正しました - メモリが
tidb_mem_quota_query
#49033 @ 徐淮宇を超えると IndexHashJoin 演算子を含むクエリが停止する問題を修正しました。 - 定数伝播#49440 @ ウィノロスで
ENUM
またはSET
型を処理するときに TiDB が間違ったクエリ結果を返す問題を修正しました PREPARE
メソッドを使用してSELECT INTO OUTFILE
を実行すると、エラー#49166 @ qw4990ではなく、誤って成功メッセージが返される問題を修正しました。- クエリがソートを強制するオプティマイザヒント(
STREAM_AGG()
など)を使用し、実行プランにIndexMerge
#49605 @ アイリンキッドが含まれている場合に、強制ソートが無効になる可能性がある問題を修正しました。 - テーブルが#48869 @ 天菜まおと多数ある場合に、テーブルが
AUTO_ID_CACHE=1
の場合に gRPC クライアント リークが発生する可能性がある問題を修正しました。 - 非厳密モード(
sql_mode = ''
)で、INSERT
実行中に切り捨てが行われても、 天菜まおでエラー#49369が報告される問題を修正しました。 - データの末尾にスペースが含まれている場合に
LIKE
で_
ワイルドカードを使用すると、クエリ結果が不正確になる可能性がある問題を修正しました#48983 @ 時間と運命 tidb_mem_quota_query
システム変数を更新した後にADMIN CHECK
実行するとERROR 8175
#49258 @ タンジェンタが返される問題を修正しました- Golang の暗黙的な変換アルゴリズム#49801 @ qw4990によって発生する統計の構築における過度の統計エラーの問題を修正
- CTE を含むクエリで、
tidb_max_chunk_size
が小さい値#48808 @ グオシャオゲに設定されている場合にruntime error: index out of range [32] with length 32
報告される問題を修正しました。
- システム変数
ティクヴ
tidb_enable_row_level_checksum
有効にすると TiKV がpanicになる可能性がある問題を修正#16371 @ 翻訳- gRPC スレッドが
is_shutdown
#16236 @ ピンギュをチェックしているときに TiKV がpanic可能性がある問題を修正しました - TiKV がブラジルとエジプトのタイムゾーンを誤って変換する問題を修正#16220 @ 金星の上
- Titanの
blob-run-mode
オンライン#15978 @ トニーに更新できない問題を修正 DECIMAL
算術乗算切り捨て#16268 @ ソロッツを処理するときに TiDB と TiKV が矛盾した結果を生成する可能性がある問題を修正しました。notLeader
またはregionNotFound
#15712 @ ヒューシャープに遭遇するとフラッシュバックが停止する可能性がある問題を修正しました- 破損したSSTファイルが他のTiKVノード#15986 @ コナー1996に広がる可能性がある問題を修正
- TiKV の実行速度が非常に遅い場合、リージョン#16111と金星の上マージ後にpanicする可能性がある問題を修正しました。
- #15817 @ コナー1996にスケールアウトするときに DR 自動同期のジョイント状態がタイムアウトする可能性がある問題を修正しました。
- 解決済みのTSが2時間ブロックされる可能性がある問題を修正#11847 #15520 #39130 @ 金星の上
cast_duration_as_time
誤った結果を返す可能性がある問題を修正#16211 @ ゲンリキ- コーナーケース(ディスク I/O 操作がブロックされている場合など)で TiKV がハングし、可用性に影響する問題を修正#16368 @ リクササシネーター
PD
- リソース グループをバッチでクエリすると PD がpanicになる可能性がある問題を修正#7206 @ ノルーシュ
systemd
#7628 @ バッファフライで起動すると PD がリソース制限を読み取れない問題を修正- PD ディスクレイテンシーの継続的なジッタにより、PD が新しいリーダー#7251 @ ヒューシャープを選択できない可能性がある問題を修正しました。
- PD のネットワーク パーティションにより、スケジュールがすぐに開始されない可能性がある問題を修正#7016 @ ヒューシャープ
- リーダースイッチ#7728 @ キャビンフィーバーB後にPD監視項目
learner-peer-count
古い値を同期しない問題を修正 - PDリーダーが転送され、新しいリーダーとPDクライアントの間にネットワークパーティションがある場合、PDクライアントがリーダー#7416 @ キャビンフィーバーBの情報を更新できない問題を修正しました。
- Gin Web Framework のバージョンを v1.8.1 から v1.9.1 にアップグレードして、いくつかのセキュリティ問題を修正しました#7438 @ ニューベル
- レプリカ数が要件#7584 @ バッファフライを満たしていない場合に孤立ピアが削除される問題を修正
pd-ctl
を使用してリーダーのないリージョンを照会すると、PD がpanic#7630 @ rleungxになる可能性がある問題を修正しました。
TiFlash
- レプリカ移行中にPDとのネットワーク接続が不安定になり、 TiFlashがpanic可能性がある問題を修正#8323 @ ジェイソン・ファン
- TiFlashレプリカを削除して再度追加すると、 TiFlash #8695 @ ジェイソン・ファンでデータが破損する可能性がある問題を修正しました。
DROP TABLE
データ挿入#8395 @ ジェイソン・ファンの直後に実行されると、FLASHBACK TABLE
またはRECOVER TABLE
一部のTiFlashレプリカのデータを回復できない可能性がある潜在的な問題を修正しました。- Grafana #8076 @ ジェイソン・ファンの一部のパネルの最大パーセンタイル時間の誤った表示を修正
- リモート読み取り#8685 @ グオシャオゲ中にTiFlash がクラッシュする可能性がある問題を修正
ENUM
値が 0 #8311 @ ソロッツの場合にTiFlash がENUM
誤って処理する問題を修正しました- 短いクエリが正常に実行されると過剰な情報ログ#8592 @ 風の話し手が出力される問題を修正しました
- クエリが遅いためにメモリ使用量が大幅に増加する問題を修正#8564 @ ジンヘリン
lowerUTF8
とupperUTF8
関数で、大文字と小文字が異なるバイト#8484 @ ゲンリキを占めることができない問題を修正しました。- ストリーム読み取り#8505 @ ゲンリキ中に複数のパーティション テーブルをスキャンするときに発生する可能性のある OOM 問題を修正しました。
- クエリ#8447 @ ジンヘリン中にTiFlash がメモリ制限に遭遇した場合のメモリリークの問題を修正しました。
- TiFlash が同時 DDL 実行中に競合に遭遇した場合のTiFlashpanic問題を修正#8578 @ ジェイソン・ファン
ALTER TABLE ... MODIFY COLUMN ... NOT NULL
を実行した後にTiFlash がパニックを起こし、null 許容列が#8419 @ ジェイソン・ファンに非許容列に変更される問題を修正しました。ColumnRef in (Literal, Func...)
#8631 @ ロイド・ポティガーのようなフィルタリング条件でクエリを実行したときにクエリ結果が正しくない問題を修正しましたFLASHBACK DATABASE
#8450 @ ジェイソン・ファンを実行した後もTiFlashレプリカのデータがガベージ コレクションされる問題を修正しました。- 分散storageおよびコンピューティングアーキテクチャ#8519 @ ジェイソン・ファンでTiFlash がオブジェクトstorageデータの GC 所有者を選択できない可能性がある問題を修正しました。
- 定数文字列パラメータ#8604 @ 風の話し手を含む
GREATEST
またはLEAST
関数で発生する可能性のあるランダムな無効なメモリアクセスの問題を修正しました。 - ポイントインタイムリカバリ(PITR)を実行した後、または
FLASHBACK CLUSTER TO
実行した後にTiFlashレプリカデータが誤って削除され、データ異常#8777 @ ジェイソン・ファンが発生する可能性がある問題を修正しました。 - 結合に非等価条件#8791 @ 風の話し手が含まれている場合にTiFlash Anti Semi Join が誤った結果を返す可能性がある問題を修正しました
ツール
バックアップと復元 (BR)
- TiKVノード#50566 @ リーヴルスにリーダーがいないためにデータの復元が遅くなる問題を修正
--filter
オプションを指定した後でも、完全な復元を行うにはターゲット クラスターが空である必要があるという問題を修正しました#51009 @ 3ポインター- データの復元に失敗した後、チェックポイントから再開するとエラー
the target cluster is not fresh
発生する問題を修正#50232 @ リーヴルス - ログバックアップタスクを停止すると TiDB がクラッシュする問題を修正#50839 @ ユジュンセン
- 古いバージョン#49466 @ 3ポインターのバックアップからデータを復元するときに
Unsupported collation
エラーが報告される問題を修正しました - タスク初期化中にPDへの接続に失敗すると、ログバックアップタスクは開始できるが正常に動作しない問題を修正#16056 @ ユジュンセン
- BR が外部storageファイル#48452 @ 3エースショーハンドに対して誤った URI を生成する問題を修正
- 同じノード#50445 @ 3ポインターで TiKV IP アドレスを変更した後にログ バックアップが停止する問題を修正しました。
- S3 #49942 @ リーヴルスからファイル コンテンツを読み取っているときにエラーが発生した場合にBR が再試行できない問題を修正しました。
ティCDC
- Syncpoint が有効な場合にエラーが発生した後、シンクモジュールが正しく再起動しない問題を修正 (
enable-sync-point = true
) #10091 @ ヒック - storageシンク#10352 @ チャールズ・チュン96を使用すると、storageサービスによって生成されたファイルシーケンス番号が正しく増加しない可能性がある問題を修正しました。
- 同期ポイントテーブルが誤って複製される可能性がある問題を修正#10576 @ アズドンメン
- Apache Pulsarをダウンストリームとして使用する場合にOAuth2.0、TLS、mTLSを適切に有効化できない問題を修正#10602 @ アズドンメン
- 複数の変更フィード#10430 @ チャールズ・チュン96を同時に作成すると TiCDC が
ErrChangeFeedAlreadyExists
エラーを返す問題を修正しました - 極端なケースでチェンジフィード
resolved ts
が進まない問題を修正#10157 @ スドジ - 特定の特殊なシナリオで TiCDC が TiKV との接続を誤って閉じる問題を修正#10239 @ ヒック
- オブジェクトstorageサービス#10137 @ スドジにデータを複製するときに TiCDCサーバーがpanicになる可能性がある問題を修正しました
- アップストリームテーブル#10522 @ スドジで
TRUNCATE PARTITION
が実行された後に、changefeed がエラーを報告する問題を修正しました。 ignore-event
でadd table partition
イベントをフィルタリングするように構成した後、TiCDC が関連パーティションの他のタイプの DML 変更をダウンストリーム#10524 @ チャールズ・チュン96に複製しない問題を修正しました。kv-client
初期化#10095 @ 3エースショーハンド中に発生する可能性のあるデータ競合問題を修正
- Syncpoint が有効な場合にエラーが発生した後、シンクモジュールが正しく再起動しない問題を修正 (
TiDB データ移行 (DM)