TiDB 6.3.0 リリースノート
発売日:2022年9月30日
TiDB バージョン: 6.3.0-DMR
注記:
TiDB 6.3.0-DMR のドキュメントはアーカイブ済みです。PingCAP では、TiDB データベースの最新のLTSバージョン使用することを推奨しています。
クイックアクセス: クイックスタート
v6.3.0-DMR の主な新機能と改善点は次のとおりです。
- TiKV は、SM4 アルゴリズムを使用した保存時の暗号化をサポートします。
- TiDB は SM3 アルゴリズムを使用した認証をサポートしています。
CREATE USERとALTER USERステートメントはACCOUNT LOCK/UNLOCKオプションをサポートします。- JSON データ型と関数が一般提供 (GA) されます。
- TiDB は null 対応のアンチ結合をサポートします。
- TiDB は、より細かい粒度で実行時間のメトリックを提供します。
- 範囲パーティションの定義を簡素化するために、新しい構文糖が追加されました。
- 範囲列パーティションは複数の列の定義をサポートします。
- インデックス追加のパフォーマンスが 3 倍になります。
- リソースを大量に消費するクエリが軽量クエリの応答時間に与える影響を 50% 以上削減します。
新機能
SQL
範囲パーティションの定義を簡素化するための新しい構文糖(範囲INTERVALパーティション)を追加します(実験的) #35683 @ mjonss
TiDBは、レンジパーティションを定義する新しい方法としてINTERVALパーティション分割提供します。すべてのパーティションを列挙する必要がないため、レンジパーティションのDDL文の長さが大幅に短縮されます。構文は、従来のレンジパーティションと同じです。
範囲列パーティションは、 #36636 @ mjonss複数の列の定義をサポートします。
TiDBは範囲列によるパーティション分割(列リスト)
column_listします。3では、単一列に制限されなくなりました。基本的な機能はMySQLと同じです。さらに 2 つのウィンドウ関数をTiFlash #5579 @ SeaRiseにプッシュダウンする
LEAD()LAG()
DDL変更時のDML成功率を向上させるために軽量メタデータロックを提供する(実験的) #37275 @ wjhuang2016
TiDBは、オンライン非同期スキーマ変更アルゴリズムを使用して、メタデータオブジェクトの変更をサポートします。トランザクションが実行されると、トランザクション開始時の対応するメタデータスナップショットが取得されます。トランザクション中にメタデータが変更された場合、データの一貫性を確保するために、TiDBはエラー
Information schema is changedを返し、トランザクションはコミットに失敗します。この問題を解決するために、TiDB v6.3.0ではオンラインDDLアルゴリズムにメタデータロック導入されました。可能な限りDMLエラーを回避するために、TiDBはテーブルメタデータの変更時にDMLとDDLの優先順位を調整し、古いメタデータを持つDMLがコミットされるまで実行中のDDLを待機させます。インデックス追加のパフォーマンスを改善し、DMLトランザクションへの影響を軽減します(実験的) #35983 @ benjamin2037
インデックス作成時のバックフィル速度を向上させるため、TiDB v6.3.0では、システム変数
tidb_ddl_enable_fast_reorg有効な場合にDDL操作ADD INDEXとCREATE INDEX高速化します。この機能を有効にすると、インデックス追加のパフォーマンスが約3倍になります。
Security
TiKVは保存時の暗号化にSM4アルゴリズムをサポートしています#13041 @ jiayang-zheng
保存時のTiKV暗号化にはSM4アルゴリズム追加します。保存時の暗号化を設定する場合、
data-encryption-method設定の値をsm4-ctrに設定することで、SM4暗号化機能を有効にできます。TiDBはSM3アルゴリズム#36192 @ CbcWestwolfによる認証をサポートしています
TiDBは、SM3アルゴリズムに基づく認証プラグイン
tidb_sm3_passwordを追加します。このプラグインを有効にすると、ユーザーパスワードはSM3アルゴリズムを使用して暗号化および検証されます。TiDB JDBCはSM3アルゴリズム#25 @ lastincisorによる認証をサポートしています
ユーザーパスワードの認証にはクライアント側のサポートが必要です。1 JDBCはSM3アルゴリズムをサポートしていますなったため、TiDB-JDBC経由のSM3認証を使用してTiDBに接続できるようになりました。
可観測性
TiDBはSQLクエリ実行時間のきめ細かなメトリクスを提供します#34106 @ cfzjywxk
TiDB v6.3.0 は、 実行時間の詳細な観察のきめ細かなデータメトリクスを提供します。完全かつセグメント化されたメトリクスを通じて、SQL クエリの主な時間消費を明確に把握し、主要な問題を迅速に発見してトラブルシューティングの時間を節約できます。
スローログと
TRACEステートメント#34106 @ cfzjywxkの出力が強化されましたTiDB v6.3.0 では、スローログの出力が強化され、
TRACE. TiDB の解析から KV RocksDB のディスクへの書き込みまでのフルリンク期間の SQL クエリを観察できるようになり、診断機能がさらに強化されました。TiDBダッシュボードはデッドロック履歴情報を提供します#34106 @ cfzjywxk
v6.3.0以降、TiDBダッシュボードはデッドロック履歴を提供します。TiDBダッシュボードでスローログを確認し、一部のSQL文のロック待機時間が過度に長いことが判明した場合、デッドロック履歴を確認することで根本原因を特定できるため、診断が容易になります。
パフォーマンス
TiFlash はFastScan の使い方を変えます (実験的) #5252 @ hongyunyan
v6.2.0では、 TiFlashにFastScan機能が導入されました。この機能は期待通りのパフォーマンス向上をもたらしますが、使用上の柔軟性に欠けます。そのため、v6.3.0ではTiFlashに以下の変更が加えられましたFastScanの使い方 :FastScanを有効または無効にする
ALTER TABLE ... SET TIFLASH MODE ...構文は非推奨となりました。代わりに、システム変数tiflash_fastscan使用して、FastScanの有効化/無効化を簡単に制御できます。v6.2.0からv6.3.0にアップグレードすると、v6.2.0のすべてのFastScan設定が無効になりますが、通常のデータ読み取りには影響しません。変数
tiflash_fastscan設定する必要があります。v6.2.0以前のバージョンからv6.3.0にアップグレードする場合、データの一貫性を保つため、FastScan機能はすべてのセッションでデフォルトで有効になりません。TiFlashは、複数の同時実行タスク#5376 @ JinheLinのシナリオでデータスキャンのパフォーマンスを最適化します。
TiFlashは、同じデータの読み取り操作を組み合わせることで、同じデータの重複読み取りを削減します。リソースのオーバーヘッドを同時タスクの場合のデータスキャンのパフォーマンスが向上します化し、複数の同時タスクを実行する場合、各タスクが同じデータを個別に読み取る必要が生じる状況を回避し、同じデータが同時に複数回読み取られる可能性を回避します。
この機能は v6.2.0 では実験的であり、v6.3.0 で GA になります。
TiFlashはデータ複製のパフォーマンスを向上します#5237 @ breezewish
TiFlashは、TiKVからのデータレプリケーションにRaftプロトコルを使用しています。v6.3.0より前のバージョンでは、大量のレプリカデータのレプリケーションに長時間かかることがよくありました。TiDB v6.3.0では、 TiFlashデータレプリケーションメカニズムが最適化され、レプリケーション速度が大幅に向上しました。BRを使用したデータリカバリ、 TiDB Lightningを使用したデータインポート、または新しいTiFlashレプリカの追加を行う際に、 TiFlashレプリカのレプリケーション速度が向上し、 TiFlashによるクエリをよりタイムリーに実行できます。さらに、スケールアップ、スケールダウン、またはTiFlashレプリカ数の変更を行った場合でも、 TiFlashレプリカはより速く安全でバランスの取れた状態に到達します。
TiFlashは、
COUNT(DISTINCT)#37202 @ fixdbの3段階集約をサポートします。TiFlashは、1つの
COUNT(DISTINCT)のみを含むクエリを3段階集約に書き換えることをサポートしています。これにより、同時実行性とパフォーマンスが向上します。TiKVはログリサイクル#214 @ LykxSassinatorをサポートします
TiKVはRaft Engineでログファイルのリサイクルサポートします。これにより、 Raftログ追加時のネットワークディスクにおけるロングテールレイテンシーが削減され、書き込みワークロードにおけるパフォーマンスが向上します。
TiDBはnull対応アンチ結合#37525 @ Arenatlxをサポートします
TiDB v6.3.0では、新しい結合タイプNull 認識アンチ結合 (NAAJ)が導入されました。NAAJは、コレクション操作を処理する際に、コレクションが空であるか
NULLあるかを認識できます。これにより、INや= ANYなどの操作の実行効率が最適化され、SQLパフォーマンスが向上します。ハッシュ結合#35439 @ Reminiscentのビルド終了を制御するためのオプティマイザヒントを追加します。
v6.3.0では、TiDBオプティマイザにハッシュ結合、そのプローブ終了、およびビルド終了を指定するためのヒント
HASH_JOIN_BUILD()とHASH_JOIN_PROBE()が導入されました。オプティマイザが最適な実行プランを選択できない場合、これらのヒントを使用してプランに介入することができます。セッションレベルの共通テーブル式(CTE)インライン#36514 @ elsa0520をサポート
TiDB v6.2.0では、オプティマイザに
MERGEヒントが導入され、CTEインライン化が可能になりました。これにより、CTEクエリ結果のコンシューマーはTiFlash内で並列実行できるようになりました。v6.3.0では、セッション変数tidb_opt_force_inline_cte導入され、セッション内でCTEインライン化が可能になりました。これにより、使いやすさが大幅に向上します。
取引
悲観的トランザクションにおける一意制約のチェックの延期をサポート#36579 @ ekexium
システム変数
tidb_constraint_check_in_place_pessimistic使用すると、TiDB が悲観的トランザクションで一意制約チェックするタイミングを制御できます。この変数はデフォルトで無効になっています。この変数を有効にすると(ONに設定すると)、TiDB は悲観的トランザクションにおけるロック操作と一意制約のチェックを必要になるまで延期し、一括 DML 操作のパフォーマンスを向上させます。Read-Committed分離レベル#36812 @ TonsnakeLinでTSOを取得する方法を最適化する
Read-Committed分離レベルでは、TSOのフェッチ方法を制御するためにシステム変数
tidb_rc_write_check_ts導入されています。プランキャッシュヒットの場合、TiDBはTSOのフェッチ頻度を減らすことでバッチDML文の実行効率を向上させ、バッチで実行されるタスクの実行時間を短縮します。
安定性
リソースを大量に消費するクエリが軽量クエリの応答時間に与える影響を軽減する#13313 @ glorv
リソースを大量に消費するクエリと軽量クエリが同時に実行されると、軽量クエリの応答時間に影響が出ます。この場合、トランザクションサービスの品質を確保するため、軽量クエリはTiDBによって最初に処理されることが想定されています。v6.3.0では、TiKVが読み取りリクエストのスケジューリングメカニズムを最適化し、各ラウンドにおけるリソースを大量に消費するクエリの実行時間が期待どおりになるようにしました。これにより、リソースを大量に消費するクエリが軽量クエリの応答時間に与える影響が大幅に軽減され、混合ワークロードシナリオにおいてP99レイテンシーが50%以上削減されます。
統計が古くなったときに統計をロードするデフォルトのポリシーを変更する#27601 @ xuyifangreeneyes
TiDB v5.3.0 では、統計が古くなった場合のオプティマイザーの動作を制御するシステム変数
tidb_enable_pseudo_for_outdated_statsが導入されました。デフォルト値はONで、これは旧バージョンの動作を維持することを意味します。SQL 文に含まれるオブジェクトの統計が古くなった場合、オプティマイザーは統計(テーブルの総行数以外)が信頼できないと判断し、代わりに疑似統計を使用します。実際のユーザーシナリオのテストと分析の結果、v6.3.0 以降ではデフォルト値tidb_enable_pseudo_for_outdated_statsがOFFに変更されました。統計が古くなっても、オプティマイザーはテーブルの統計を引き続き使用するため、実行プランの安定性が向上します。タイタンの無効化はGA @ tabokieになる
オンライン TiKV ノードの場合はタイタンを無効にする 。
グローバル統計が準備できていない場合は
staticパーティション プルーニングを使用する#37535 @ Yisaerdynamic pruning有効になっている場合、オプティマイザは世界統計に基づいて実行プランを選択します。グローバル統計が完全に収集される前に疑似統計を使用すると、パフォーマンスが低下する可能性があります。v6.3.0では、グローバル統計の収集が完了する前にdynamicプルーニングモードを有効にすると、TiDBはグローバル統計が完全に収集されるまでstaticモードのままになります。これにより、パーティションプルーニング設定を変更した場合でも、パフォーマンスの安定性が確保されます。
使いやすさ
SQLベースのデータ配置ルールとTiFlashレプリカ#37171 @ lcwangchao間の競合に対処する
TiDB v6.0.0 はSQLベースのデータ配置ルール提供します。しかし、この機能は実装上の問題によりTiFlashレプリカと競合します。TiDB v6.3.0 では実装メカニズムが最適化され、SQL ベースのデータ配置ルールとTiFlash間の競合が解決されました。
MySQLの互換性
4つの正規表現関数のサポート#23881追加することで、MySQL 8.0と
REGEXP_REPLACE()互換性REGEXP_SUBSTR()ウィンドトーカーしましたREGEXP_LIKE()REGEXP_INSTR()MySQL との互換性の詳細については、 MySQLとの正規表現の互換性参照してください。
CREATE USERとALTER USER文はACCOUNT LOCK/UNLOCKオプション#37051 @ CbcWestwolfをサポートします。CREATE USERステートメントを使用してユーザーを作成する際、ACCOUNT LOCK/UNLOCKオプションを使用して、作成されたユーザーをロックするかどうかを指定できます。ロックされたユーザーはデータベースにログインできません。ALTER USERステートメントのACCOUNT LOCK/UNLOCKオプションを使用して、既存のユーザーのロック状態を変更できます。JSONデータ型とJSON関数はGA #36993 @ xiongjiweiになります
JSONは、多くのプログラムで採用されている一般的なデータ形式です。TiDBは以前のバージョンから、MySQLのJSONデータ型および一部のJSON関数と互換性のある実験的機能としてJSONサポート導入しました。
TiDB v6.3.0 では、JSON データ型と関数が GA となり、TiDB のデータ型が充実し、 表現インデックスと生成された列での JSON関数の使用がサポートされ、TiDB と MySQL の互換性がさらに向上しました。
バックアップと復元
PITRはジョッカウバックアップストレージとしてGCS と Azure Blob ストレージサポートします
TiDB クラスターが Google Cloud または Azure にデプロイされている場合は、クラスターを v6.3.0 にアップグレードした後、PITR 機能を使用できます。
BRはAWS S3オブジェクトロック#13442 @ 3pointerをサポートします
S3 オブジェクトロック有効にすると、AWS 上のバックアップ データが改ざんされたり削除されたりするのを防ぐことができます。
データ移行
TiDB LightningはApache Hive によってエクスポートされた Parquet ファイルを TiDB にインポートする #37536 @ buchuitoudegouをサポートします
DMは新しい構成項目
safe-mode-duration#6224 @ okJiangを追加しますこの設定項目はタスク設定ファイルに追加されます。DM が異常終了した後の自動セーフモードの継続時間を調整できます。デフォルト値は 60 秒です。
safe-mode-duration"0s"に設定すると、DM が異常な再起動後にセーフモードに入ろうとしたときにエラーが報告されます。
TiDBデータ共有サブスクリプション
TiCDCは、複数の地理的に分散したデータソース#5301 @ sdojjyからデータを複製できる展開トポロジをサポートしています。
単一のTiDBクラスタから複数の地理的に分散されたデータシステムへのデータレプリケーションをサポートするため、v6.3.0以降では、各IDCのデータレプリケーションがTiCDCを複数のIDCに導入できるなりました。この機能は、地理的に分散されたデータレプリケーションとデプロイメントトポロジーを実現する上で役立ちます。
TiCDCは、上流と下流(同期ポイント)間のスナップショットの一貫性を維持することをサポートします#6977 @ asddongmen
災害復旧のためのデータレプリケーションのシナリオにおいて、TiCDCは下流データのスナップショットを定期的に維持するサポートしており、下流のスナップショットと上流のスナップショットの整合性を確保します。この機能により、TiCDCは読み取りと書き込みが分離されているシナリオをより適切にサポートし、コスト削減に貢献します。
TiCDC は#4757 @ overvenus @ 3AceShowHandの正常なアップグレードをサポートします
TiCDC をバージョンTiUP (>=v1.11.0) またはTiDB Operator (>=v1.3.8) でデプロイすると、TiCDC クラスターをスムーズにアップグレードできます。アップグレード中は、データレプリケーションのレイテンシーが30 秒以下に抑えられます。これにより安定性が向上し、レイテンシの影響を受けやすいアプリケーションをより適切にサポートできるようになります。
互換性の変更
システム変数
コンフィグレーションファイルのパラメータ
その他
- ログ バックアップは、バックアップstorageとして GCS と Azure Blob Storage をサポートします。
- ログ バックアップは
exchange partitionDDL と互換性を持つようになりました。 - ファストスキャン有効にするために以前使用されていたSQL文
ALTER TABLE ...SET TiFLASH MODE ...非推奨となり、システム変数tiflash_fastscanに置き換えられました。v6.2.0からv6.3.0にアップグレードすると、v6.2.0のすべてのFastScan設定が無効になりますが、通常のデータ読み取りには影響しません。この場合、変数tiflash_fastscanを設定してFastScanを有効または無効にする必要があります。以前のバージョンからv6.3.0にアップグレードすると、データの一貫性を保つため、すべてのセッションでFastScan機能がデフォルトで有効になりません。 - Linux AMD64アーキテクチャでTiFlashを展開するには、CPUがAVX2命令セットをサポートしている必要があります
grep avx2 /proc/cpuinfo出力されていることを確認してください。Linux ARM64アーキテクチャでTiFlashを展開するには、CPUがARMv8命令セットアーキテクチャをサポートしている必要があります。3grep 'crc32' /proc/cpuinfo | grep 'asimd'出力されていることを確認してください。命令セット拡張を使用することで、TiFlashのベクトル化エンジンはより優れたパフォーマンスを発揮できます。 - TiDBと連携するHAProxyの最小バージョンはv1.5になりました。v1.5からv2.1までのHAProxyバージョンでは、
mysql-checkにpost-41設定オプションを設定する必要があります。HAProxy v2.2以降の使用をお勧めします。
削除された機能
v6.3.0 以降、TiCDC は Pulsar シンクの構成をサポートしなくなりました。StreamNative が提供するコップ代替として使用できます。
改善点
TiDB
- TiDBは、テーブルの存在を確認する際に、ターゲットテーブル名の大文字と小文字を区別しなくなりました#34610 @ tiancaiamao
init_connect#35324 @ CbcWestwolfの値を設定するときに解析チェックを追加することで、MySQL の互換性が向上しました。- 新規接続#34964 @ xiongjiweiに対して生成されるログ警告を改善
- DDL履歴ジョブをクエリするためのHTTP APIを最適化し、
start_job_idパラメータ#35838 @ tiancaiamaoのサポートを追加します。 - JSONパスの構文が間違っている場合にエラーを報告する#22525 #34959 @ xiongjiwei
- 偽共有の問題を修正して結合操作のパフォーマンスを向上#37641 @ gengliqi
PLAN REPLAYERを使用して複数の SQL 文の実行プラン情報を一度にエクスポートする機能をサポートし、トラブルシューティングの効率が向上します#37798 @ Yisaer
TiKV
- 1 つのピアが到達不能になった後にRaftstore が過剰なメッセージをブロードキャストすることを回避するための
unreachable_backoff項目の設定をサポートします#13054 @ 5kbpers - TSOサービス#12794 @ pingyuのフォールトトレランスを向上
- RocksDBで同時に実行されるサブコンパクション操作の数を動的に変更する機能をサポート (
rocksdb.max-sub-compactions) #13145 @ ethercflow - 空のリージョン#12421とタボキマージのパフォーマンスを最適化
- より多くの正規表現関数をサポート#13483 @ gengliqi
- CPU 使用率#13313 @ glorvに基づいてスレッドプールのサイズを自動的に調整する機能をサポート
- 1 つのピアが到達不能になった後にRaftstore が過剰なメッセージをブロードキャストすることを回避するための
PD
- TiDBダッシュボード#5366 @ YiniXu9506のTiKV IO MBpsメトリックのクエリを改善
- TiDBダッシュボードのURLを
metricsからmonitoring#5366 @ YiniXu9506に変更します
TiFlash
elt機能をTiFlash #5104 @ Willendlessに押し下げることをサポートleftShift機能をTiFlash #5099 @ AnnieoftheStarsに押し下げることをサポートcastTimeAsDuration機能をTiFlash #5306 @ AntiTopQuarkに押し下げることをサポートHexIntArg/HexStrArg機能をTiFlash #5107 @ YangKeaoに押し下げることをサポート- TiFlash のインタープリタをリファクタリングし、新しいインタープリタ Planner #4739 @ SeaRiseをサポートします
- TiFlash #5609 @ bestwoodyのメモリトラッカーの精度を向上
UTF8_BIN/ASCII_BIN/LATIN1_BIN/UTF8MB4_BIN照合#5294 @ solotzgで文字列列のパフォーマンスを向上- ReadLimiter #5401 @ Lloyd-Pottiger #5091バックグラウンドでのI/Oスループットを計算します
ツール
バックアップと復元 (BR)
TiCDC
- TiCDC と、アップストリーム TiDB #6506 @ lance6716で導入された並行 DDL フレームワークとの互換性を向上
- MySQLシンクがエラー#6460 @ overvenusを取得したときにDMLステートメントの
start tsログ記録をサポート api/v1/healthAPI を強化して、TiCDC クラスター#4757 @ overvenusのより正確なヘルス状態を返します- シンクのスループットを向上させるために、非同期モードでMQシンクとMySQLシンクを実装します#5928 @ hicqu @ Rustin170506
- 廃止予定のパルサーシンク#7087 @ Rustin170506を削除します
- 変更フィードに関係のない DDL ステートメントを破棄することでレプリケーションのパフォーマンスを向上します#6447 @ asddongmen
TiDB データ移行 (DM)
TiDB Lightning
バグ修正
TiDB
PREPARE文#35784 @ lcwangchaoで権限チェックがスキップされる問題を修正- システム変数
tidb_enable_noop_variableWARN#36647 @ lcwangchaoに設定できる問題を修正 - 式インデックスが定義されている場合、
INFORMATION_SCHEMA.COLUMNSテーブルのORDINAL_POSITION列が正しくなくなる可能性がある問題を修正しました#31200 @ bb7133 - タイムスタンプが
MAXINT32#31585 @ bb7133より大きい場合にTiDBがエラーを報告しない問題を修正しました - エンタープライズプラグイン使用時にTiDBサーバーを起動できない問題を修正#37319 @ xhebox
SHOW CREATE PLACEMENT POLICY#37526 @ xheboxの誤った出力を修正- 一時テーブル#37201 @ lcwangchaoの予期しない動作
EXCHANGE PARTITIONを修正 INFORMATION_SCHEMA.TIKV_REGION_STATUSクエリするとジムララで誤った結果が返される問題を修正しました- ビューの
EXPLAINクエリが権限#34326 @ hawkingreiをチェックしない問題を修正 - JSON
nullNULL#37852 @ YangKeaoに更新できない問題を修正 - DDLジョブの
row_countが不正確である問題を修正#25968 @ Defined2014 FLASHBACK TABLE正しく動作しない問題を修正#37386 @ tiancaiamao- 典型的なMySQLプロトコル#36731 @ dveedenで
prepared文フラグを処理できない問題を修正 - 極端なケースで起動時に誤った TiDB ステータスが表示される問題を修正#36791 @ xhebox
INFORMATION_SCHEMA.VARIABLES_INFOセキュリティ強化モード(SEM) #37586 @ CbcWestwolfに準拠していない問題を修正UNION#31678 @ cbcwestwolfのクエリで文字列を文字列にキャストするとエラーが発生する問題を修正しました- TiFlash #37254 @ wshwsh12のパーティションテーブルでダイナミックモードを有効にしたときに発生する誤った結果を修正しました
- TiDB のバイナリ文字列と JSON 間のキャストと比較が MySQL #31918 #25053 @ YangKeaoと互換性がない問題を修正しました
- TiDBの
JSON_OBJECTAGGとJSON_ARRAYAGGMySQLのバイナリ値#25053 @ YangKeaoと互換性がない問題を修正しました。 - JSON の不透明値の比較でpanic#37315 @ YangKeaoが発生する問題を修正しました
- JSON集計関数#37287 @ YangKeaoで単精度浮動小数点が使用できない問題を修正
UNION演算子が予期しない空の結果#36903 @ tiancaiamaoを返す可能性がある問題を修正しましたcastRealAsTime式の結果が MySQL #37462 @ mengxin9014と一致しない問題を修正しました- 悲観的DML操作が非一意のインデックスキー#36235 @ ekexiumをロックする問題を修正
auto-commit変更がトランザクションのコミット動作#36581 @ cfzjywxkに影響を与える問題を修正しました- DMLエグゼキュータを使用した
EXPLAIN ANALYZE文が、トランザクションコミットが完了する前に結果を返す可能性がある問題を修正しました#37373 @ cfzjywxk - UPDATE文が場合によっては投影を誤って削除し、
Can't find columnエラー#37568 @ AilinKidが発生する問題を修正しました。 - 結合したテーブルの再配置操作で誤って外部結合条件#37238 @ AilinKidをプッシュダウンする問題を修正しました。
- 一部のパターンの
INとNOT INサブクエリがCan't find columnエラー#37032 @ AilinKidを報告する問題を修正しました UPDATE文に共通テーブル式 (CTE) #35758 @ AilinKidが含まれている場合にCan't find column報告される問題を修正しましたPromQL#35856 @ Defined2014誤りを修正
TiKV
- リージョンハートビートが中断された後にPDがTiKVに再接続しない問題を修正#12934 @ bufferflies
- Raftstoreが#13160 @ 5kbpersでビジー状態の場合にリージョンが重複する可能性がある問題を修正しました
- PDクライアントがデッドロックを引き起こす可能性がある問題を修正#13191 @ bufferflies #12933 @ BurtonQin
- 暗号化が無効になっているときに TiKV がpanic可能性がある問題を修正#13081 @ jiayang-zheng
- ダッシュボード#13086 @ glorvの
Unified Read Pool CPUの誤った表現を修正 - TiKVインスタンスが隔離されたネットワーク環境にある場合、TiKVサービスが数分間利用できなくなる問題を修正#12966 @ cosven
- TiKVが誤って
PessimisticLockNotFoundエラー#13425 @ sticnarfを報告する問題を修正 - PITR が状況によってはデータ損失を引き起こす可能性がある問題を修正#13281 @ YuJuncen
- 長い悲観的トランザクション#13304 @ YuJuncenがある場合にチェックポイントが進まない問題を修正しました
- TiKV が日付時刻
DATEDATETIMEと JSON #13417 @TIMEのSTRING型をTIMESTAMPしない問題ヤンケオ修正しました - JSON bool と他の JSON 値の比較における MySQL との非互換性を修正#13386 #37481 @ YangKeao
PD
TiFlash
- クエリがキャンセルされたときにウィンドウ関数によってTiFlashがクラッシュする可能性がある問題を修正#5814 @ SeaRise
CAST(value AS DATETIME)間違ったデータ入力によりTiFlash sys CPU #5097 @ xzhangxian1008の負荷が高くなる問題を修正CAST(Real/Decimal AS time)の結果が MySQL #3779 @ mengxin9014と一致しない問題を修正- storage内の一部の古いデータを削除できない問題を修正#5570 @ JaySon-Huang
- ページGCがテーブル#5697 @ JaySon-Huangの作成をブロックする可能性がある問題を修正しました
NULL値#5859 @ JaySon-Huangを含む列でプライマリインデックスを作成した後に発生するpanicを修正しました。
ツール
バックアップと復元 (BR)
TiCDC
- TiCDC が grpc サービス#6458 @ crelaxで間違った PD アドレスに対して不正確なエラーを返す問題を修正しました
cdc cause cli changefeed listコマンドが失敗した変更フィード#6334 @ asddongmenを返さない問題を修正しました- チェンジフィードの初期化に失敗すると TiCDC が利用できなくなる問題を修正#6859 @ asddongmen
TiDBBinlog
TiDB データ移行 (DM)
- DMが
Specified key was too longエラー#5315 @ lance6716を報告する問題を修正 - リレーがエラー#6193 @ lance6716に遭遇したときの goroutine リークを修正
collation_compatible"strict"に設定すると、DM が重複した照合順序#6832 @ lance6716を持つ SQL を生成する可能性がある問題を修正しました。- DM ワーカー ログ#6628 @ lyzx2001に「 binlog status_vars からタイムゾーンを取得するときにエラーが発生しました」という警告メッセージが表示されるのを減らします。
- レプリケーション#7028 @ lance6716中に latin1 データが破損する可能性がある問題を修正しました
- DMが
TiDB Lightning
寄稿者
TiDB コミュニティからの以下の貢献者に感謝いたします。
- @ An-DJ
- @ AnnieoftheStars
- @ AntiTopQuark
- @ blacktear23
- @ BurtonQin (初回投稿者)
- @ crelax
- @ eltociear
- @ fuzhe1989
- @ erwadba
- @ jianzhiyao
- @ joycse06
- @ morgo
- @ onlyacat
- @ peakji
- @ rzrymiak
- @ tisonkun
- @ whitekeepwork
- @ Ziy1-Tan