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