TiDB v6.2.0 リリースノート
発売日:2022年8月23日
TiDB バージョン: 6.2.0-DMR
v6.2.0-DMR の主な新機能と改善点は次のとおりです。
- TiDB ダッシュボードはビジュアル実行計画をサポートしており、実行計画をより直感的に表示できます。
- TiDB ダッシュボードにモニタリングページを追加して、パフォーマンス分析とチューニングをより効率的にします。
- TiDB 機能のビューをロックは、楽観的トランザクションの待機情報の表示をサポートし、ロック競合の迅速な特定を容易にします。
- TiFlash は新しいバージョンのストレージ形式をサポートし、安定性とパフォーマンスを向上させます。
- ファイングレイン シャッフル機能を指定すると、複数のスレッドでウィンドウ関数を並列実行できます。
- A 新しい並行 DDL フレームワーク : ブロックされる DDL ステートメントが少なくなり、実行効率が高くなります。
- TiKV はCPU使用率の自動チューニングをサポートしているため、安定した効率的なデータベース操作が保証されます。
- ポイントインタイムリカバリ (PITR)は、TiDB クラスターのスナップショットを過去の任意の時点から新しいクラスターに復元するために導入されました。
- TiDB Lightningは物理インポート モードでの本番クラスターへのデータのインポートをサポートしています。
- BR はユーザーおよび権限データの復元をサポートし、バックアップと復元をよりスムーズにします。
- TiCDC は特定のタイプの DDL イベントのフィルタリングをサポートすることで、より多くのデータ レプリケーション シナリオを解き放ちます。
- トランザクション内のロールバック ポイントを柔軟に制御できる
SAVEPOINT
メカニズムがサポートされています。 - TiDB は1 つの
ALTER TABLE
ステートメントのみで複数の列またはインデックスを追加、削除、および変更するをサポートしています。 - クラスタ間の RawKV レプリケーションがサポートされるようになりました。
新機能
SQL
物理データ圧縮機能は GA です
TiFlash バックエンドは、特定の条件に基づいて物理データを自動的に圧縮し、不要なデータのバックログを削減し、データ ストレージ構造を最適化します。
データ圧縮が自動的にトリガーされる前に、TiFlash テーブルに一定量の役に立たないデータが存在することがよくあります。この機能を使用すると、適切なタイミングを選択して SQL ステートメントを手動で実行し、TiFlash 内の物理データを即座に圧縮できるため、ストレージ スペースの使用量が削減され、クエリのパフォーマンスが向上します。この機能は TiDB v6.1 で実験的であり、現在 TiDB v6.2.0 で一般提供 (GA) されています。
可観測性
PD から TiDB ダッシュボードを分割する
TiDB ダッシュボードは、PD から監視ノードに移動されます。これにより、PD に対する TiDB ダッシュボードの影響が軽減され、PD がより安定します。
@ ホークソンジー
TiDB ダッシュボードに監視ページを追加
新しい [監視] ページには、パフォーマンス チューニングに必要な主要な指標が表示されます。これに基づいて、 データベース時間によるパフォーマンス チューニングを参照してパフォーマンスを分析および調整できます。
具体的には、グローバルおよびトップダウンの観点からユーザー応答時間とデータベース時間を分析して、ユーザー応答時間のボトルネックがデータベースの問題によって引き起こされているかどうかを確認できます。ボトルネックがデータベースにある場合は、データベース時間の概要と SQLレイテンシーの内訳を使用して、ボトルネックを特定し、パフォーマンスを調整できます。
TiDB ダッシュボードは視覚的な実行計画をサポートしています
TiDB ダッシュボードは、SQL ステートメントと監視ページを通じて、視覚的な実行計画と基本的な診断サービスを提供します。この機能は、クエリ プランの各ステップを識別するための新鮮な新しい視点を提供します。したがって、クエリ実行プランのすべてのトレースをより直感的に学習できます。
この機能は、複雑で大規模なクエリの実行を学習しようとしている場合に特に役立ちます。一方、各クエリ実行プランについて、TiDB ダッシュボードは実行の詳細を自動的に分析し、潜在的な問題を特定し、特定のクエリ プランの実行に必要な時間を短縮するための最適化の提案を提供します。
Lock ビューは、楽観的なトランザクションの待機情報の表示をサポートします
ロックの競合が多すぎると、重大なパフォーマンスの問題が発生する可能性があり、ロックの競合を検出することは、このような問題をトラブルシューティングするために必要な方法です。 v6.2.0 より前の TiDB は、
INFORMATION_SCHEMA.DATA_LOCK_WAITS
システム ビューを使用してロックの競合関係を表示することをサポートしていましたが、オプティミスティック トランザクションの待機情報は表示しません。 TiDB v6.2.0 はDATA_LOCK_WAITS
ビューを拡張し、悲観的ロックによってブロックされた楽観的トランザクションをビューにリストします。この機能は、ユーザーがロックの競合を迅速に検出するのに役立ち、アプリケーションを改善するための基礎を提供することで、ロックの競合の頻度を減らし、全体的なパフォーマンスを向上させます。
パフォーマンス
LEADING
オプティマイザ ヒントを改善して、外部結合の順序付けをサポートするv6.1.0 では、オプティマイザー ヒント
LEADING
が導入され、テーブルの結合順序が変更されました。ただし、このヒントは、外部結合を含むクエリには適用できませんでした。詳細については、LEADING
文書を参照してください。 v6.2.0 では、TiDB はこの制限を解除します。外部結合を含むクエリでは、このヒントを使用してテーブルの結合順序を指定し、SQL 実行のパフォーマンスを向上させ、実行計画の突然の変更を回避できるようになりました。EXISTS
のクエリのパフォーマンスを向上させるために、新しいオプティマイザSEMI_JOIN_REWRITE
を追加します一部のシナリオでは、
EXISTS
のクエリは最適な実行プランを持つことができず、長時間実行される可能性があります。 v6.2.0 では、オプティマイザーはこのようなシナリオの書き換えルールを追加し、クエリでSEMI_JOIN_REWRITE
を使用してオプティマイザーに強制的にクエリを書き換えさせ、クエリのパフォーマンスを向上させることができます。新しいオプティマイザー ヒント
MERGE
を追加して、分析クエリのパフォーマンスを向上させます共通テーブル式 (CTE) は、クエリ ロジックを簡素化する効果的な方法です。複雑なクエリを記述するために広く使用されています。 v6.2.0 より前では、TiFlash 環境で CTE を自動的に拡張することはできず、MPP の実行効率がある程度制限されていました。 v6.2.0 では、MySQL 互換のオプティマイザー ヒント
MERGE
が導入されました。このヒントにより、オプティマイザーは CTE インラインを展開できるようになり、CTE クエリ結果のコンシューマーが TiFlash でクエリを同時に実行できるようになり、一部の分析クエリのパフォーマンスが向上します。一部の分析シナリオで集計操作のパフォーマンスを最適化する
TiFlash を使用して OLAP シナリオで列に対して集計操作を実行する場合、集計された列の不均一な分散により深刻なデータ スキューが存在し、集計された列に多くの異なる値がある場合、列に対する
COUNT(DISTINCT)
のクエリの実行効率は低い。 v6.2.0 では、1 つの列に対するCOUNT(DISTINCT)
のクエリのパフォーマンスを向上させるために、新しい書き換えルールが導入されました。TiDB は同時 DDL 操作をサポートします
TiDB v6.2.0 では、新しいコンカレント DDL フレームワークが導入されました。これにより、DDL ステートメントを異なるテーブル オブジェクトで同時に実行できるようになり、DDL 操作が他のテーブルの DDL 操作によってブロックされるという問題が修正されます。さらに、TiDB は、複数のテーブルにインデックスを追加したり、列の型を変更したりするときに、DDL の同時実行をサポートします。これにより、DDL 実行の効率が向上します。
オプティマイザーは文字列一致の推定を強化します
文字列一致のシナリオでは、オプティマイザが行数を正確に見積もることができない場合、最適な実行計画の生成に影響します。たとえば、条件は
like '%xyz'
であるか、正規表現regex ()
を使用しています。このようなシナリオでの推定精度を向上させるために、TiDB v6.2.0 では推定方法が強化されています。新しい方法は、統計の TopN 情報とシステム変数を組み合わせて精度を向上させ、一致の選択性を手動で変更できるようにすることで、SQL のパフォーマンスを向上させます。TiFlash にプッシュされたウィンドウ関数は、複数のスレッドで実行できます。
詳細なシャッフル機能を有効にすると、ウィンドウ関数を単一のスレッドではなく、複数のスレッドで実行できます。この機能により、ユーザーの動作を変更することなく、クエリの応答時間が大幅に短縮されます。変数の値を調整することで、シャッフルの粒度を制御できます。
TiFlash は新しいバージョンのストレージ形式をサポートしています
新しいストレージ形式は、同時実行性が高くワークロードが重いシナリオで GC によって引き起こされる高い CPU 使用率を軽減します。これにより、バックグラウンド タスクの IO トラフィックが大幅に削減され、高い同時実行性と重いワークロードの下での安定性が向上します。同時に、スペースの増幅とディスクの無駄を大幅に削減できます。
TiDB v6.2.0 では、データはデフォルトで新しいストレージ形式で保存されます。 TiFlash が以前のバージョンから v6.2.0 にアップグレードされた場合、以前の TiFlash バージョンは新しいストレージ形式を認識できないため、TiFlash でインプレース ダウングレードを実行できないことに注意してください。
TiFlash のアップグレードの詳細については、 TiFlash v6.2.0 アップグレード ガイドを参照してください。
TiFlash は、複数の同時実行シナリオでデータ スキャンのパフォーマンスを最適化します (実験的)
TiFlash は、同じデータの読み取り操作をマージすることにより、同じデータの重複読み取りを減らし、複数の同時タスクの場合のリソース オーバーヘッドを最適化して、データ スキャンのパフォーマンスを向上させます。同じデータが複数の同時タスクに関係している場合、同じデータを各タスクで個別に読み取る必要がある状況や、同じデータを同時に複数回読み取る必要がある状況を回避します。
TiFlash はデータ スキャン用の FastScan を追加し、データの一貫性を犠牲にして読み書き速度を向上させます (実験的)。
TiDB は v6.2.0 で FastScan を導入しています。一貫性チェックのスキップをサポートして、速度を大幅に向上させます。 FastScan は、オフライン分析タスクなど、データの高い精度と一貫性を必要としないシナリオに適しています。以前は、データの一貫性を確保するために、TiFlash はデータ スキャン プロセス中にデータの一貫性チェックを実行して、複数の異なるバージョンから必要なデータを見つける必要がありました。
以前のバージョンから TiDB v6.2.0 にアップグレードする場合、FastScan はデフォルトですべてのテーブルに対して有効になっていないため、データの一貫性が保証されます。各テーブルの FastScan を個別に有効にすることができます。テーブルが TiDB v6.2.0 で FastScan に設定されている場合、下位バージョンにダウングレードすると無効になりますが、これは通常のデータ読み取りには影響しません。この場合は、強整合性読み取りと同等です。
安定性
TiKV は、CPU 使用率の自動調整をサポートしています (実験的)。
データベースには通常、内部操作を実行するためのバックグラウンド プロセスがあります。統計情報を収集して、パフォーマンスの問題を特定し、より適切な実行計画を生成し、データベースの安定性とパフォーマンスを向上させることができます。しかし、より効率的に情報を収集する方法と、日常の使用に影響を与えずにバックグラウンド操作とフォアグラウンド操作のリソース オーバーヘッドのバランスをとる方法は、データベース業界の頭痛の種の 1 つです。
v6.2.0 以降、TiDB は、TiKV 構成ファイルを使用したバックグラウンド リクエストの CPU 使用率の設定をサポートします。これにより、TiKV での統計の自動収集などのバックグラウンド操作の CPU 使用率を制限し、バックグラウンド操作によるユーザー操作のリソース プリエンプションを回避します。極端な場合。これにより、データベースの操作が安定して効率的になります。
同時に、TiDB は CPU 使用率の自動調整もサポートしています。次に、TiKV は、インスタンスの CPU 使用率に応じて、バックグラウンド リクエストによって占有される CPU リソースを適応的に調整します。この機能はデフォルトで無効になっています。
使いやすさ
TiKV は、コマンドライン フラグを使用した詳細な構成情報の一覧表示をサポートしています
TiKV 構成ファイルを使用して、TiKV インスタンスを管理できます。ただし、長時間実行され、別のユーザーによって管理されているインスタンスの場合、どの構成項目が変更され、デフォルト値が何であるかを知ることは困難です。これにより、クラスターをアップグレードしたりデータを移行したりするときに混乱が生じる可能性があります。 TiDB v6.2.0 以降、tikv-server は、すべての TiKV 構成項目のデフォルト値と現在の値を一覧表示する新しいコマンドライン フラグ
—-config-info
をサポートし、ユーザーが TiKV プロセスの起動パラメーターをすばやく確認できるようにし、使いやすさを向上させます。
MySQL の互換性
TiDB は、単一の
ALTER TABLE
ステートメントで複数の列またはインデックスを変更することをサポートしていますv6.2.0 より前では、TiDB は単一の DDL 変更のみをサポートしているため、異種データベースを移行するときに互換性のない DDL 操作が発生し、複雑な DDL ステートメントを TiDB でサポートされている複数の単純な DDL ステートメントに変更するには、余分な労力が必要です。さらに、一部のユーザーは ORM フレームワークに依存して SQL でアセンブリを作成するため、SQL の非互換性が発生します。 v6.2.0 以降、TiDB は単一の SQL ステートメントで複数のスキーマ オブジェクトを変更することをサポートしています。これは、ユーザーが SQL を実装するのに便利で、使いやすさを向上させます。
トランザクションでのセーブポイントの設定をサポート
トランザクションは、データベースがACIDプロパティを保証する一連の連続した操作の論理的な集合です。一部の複雑なアプリケーション シナリオでは、トランザクション内の多くの操作を管理する必要があり、トランザクション内の一部の操作をロールバックする必要がある場合があります。 「セーブポイント」は、トランザクションの内部実装のための命名可能なメカニズムです。このメカニズムにより、トランザクション内のロールバック ポイントを柔軟に制御できるため、より複雑なトランザクションを管理し、多様なアプリケーションをより自由に設計できます。
データ移行
BR は、ユーザーおよび権限データの復元をサポートします
BR は、通常の復元を実行するときに、ユーザーおよび権限データの復元をサポートします。ユーザーおよび権限データを復元するために、追加の復元計画は必要ありません。この機能を有効にするには、BR を使用してデータを復元するときに
--with-sys-table
パラメーターを指定します。ログとスナップショットのバックアップと復元に基づくポイントインタイム リカバリ (PITR) をサポート
PITR は、ログとスナップショットのバックアップと復元に基づいて実装されます。これにより、履歴の任意の時点でのクラスターのスナップショットを新しいクラスターに復元できます。この機能は、次のニーズを満たします。
- ディザスタ リカバリの RPO を 20 分未満に短縮します。
- たとえば、エラー イベントの前にデータをロールバックすることによって、アプリケーションからの誤った書き込みのケースを処理します。
- 履歴データの監査を実施し、法規制の要件を満たします。
この機能には使用上の制限があります。詳細については、ユーザードキュメントを参照してください。
DM は継続的なデータ検証をサポートしています (実験的)
継続的なデータ検証を使用して、データ移行中にアップストリームのバイナリログとダウンストリームに書き込まれたデータを継続的に比較します。バリデーターは、不整合なデータや欠落したレコードなどのデータ例外を識別します。
この機能は、一般的な完全なデータ検証スキームでの検証の遅延と過度のリソース消費の問題を解決します。
Amazon S3 バケットのリージョンを自動的に識別する
データ移行タスクは、Amazon S3 バケットのリージョンを自動的に識別できます。 region パラメーターを明示的に渡す必要はありません。
TiDB Lightningのディスク クォータの構成をサポート (実験的)
TiDB Lightningが物理インポート モード (backend='local') でデータをインポートする場合、sorted-kv-dir にはソース データを格納するのに十分なスペースが必要です。ディスク容量が不足していると、インポート タスクが失敗する可能性があります。新しい
disk_quota
構成を使用して、 TiDB Lightningが使用するディスク容量の合計を制限できるようになりました。これにより、sorted-kv-dir に十分なストレージ容量がない場合でも、インポート タスクを正常に完了することができます。TiDB Lightningは、物理インポート モードでの本番クラスターへのデータのインポートをサポートします
以前は、 TiDB Lightning (backend='local') の物理インポート モードがターゲット クラスターに大きな影響を与えていました。たとえば、移行中、PD グローバル スケジューリングは一時停止されます。したがって、以前の物理インポート モードは、初期データ インポートにのみ適しています。
TiDB Lightningは、既存の物理インポート モードを改善します。テーブルのスケジューリングを一時停止できるようにすることで、クラスター レベルからテーブル レベルへのインポートの影響が軽減されます。つまり、インポートされていないテーブルを読み書きできます。
この機能を手動で構成する必要はありません。 TiDB クラスターが v6.1.0 以降のバージョンで、 TiDB Lightningが v6.2.0 以降のバージョンの場合、新しい物理インポート モードが自動的に有効になります。
TiDB Lightningのユーザー ドキュメントをリファクタリングして、その構造をより合理的かつ明確にします。 「バックエンド」の用語も、新規ユーザーの理解の障壁を下げるために変更されています。
- 「ローカル バックエンド」を「物理インポート モード」に置き換えます。
- 「tidb バックエンド」を「論理インポート モード」に置き換えます。
TiDB データ共有サブスクリプション
クラスター間の RawKV レプリケーションをサポート (実験的)
RawKV のデータ変更をサブスクライブし、新しいコンポーネント TiKV-CDC を使用してデータ変更を下流の TiKV クラスターにリアルタイムで複製することをサポートします。これにより、クラスター間の複製が可能になります。
DDL および DML イベントのフィルタリングをサポート
特別な場合に、増分データ変更ログのフィルター規則を設定したい場合があります。たとえば、DROP TABLE などのリスクの高い DDL イベントをフィルタリングします。 v6.2.0 以降、TiCDC は、指定されたタイプの DDL イベントのフィルタリングと、SQL 式に基づく DML イベントのフィルタリングをサポートしています。これにより、TiCDC はより多くのデータ レプリケーション シナリオに適用できるようになります。
互換性の変更
システム変数
変数名 | タイプを変更 | 説明 |
---|---|---|
tidb_enable_new_cost_interface | 新規追加 | この変数は、 リファクタリングされたコスト モデルの実装を有効にするかどうかを制御します。 |
tidb_cost_model_version | 新規追加 | TiDB はコスト モデルを使用して、物理的な最適化中にインデックスと演算子を選択します。この変数は、コスト モデルのバージョンを選択するために使用されます。 TiDB v6.2.0 では、コスト モデル バージョン 2 が導入されました。これは、内部テストで以前のバージョンよりも正確です。 |
tidb_enable_concurrent_ddl | 新規追加 | この変数は、TiDB が同時 DDL ステートメントを使用できるようにするかどうかを制御します。この変数を変更しないでください。この変数を無効にするリスクは不明であり、クラスターのメタデータが破損する可能性があります。 |
tiflash_fine_grained_shuffle_stream_count | 新規追加 | この変数は、ウィンドウ関数が実行のために TiFlash にプッシュされるときのウィンドウ関数実行の同時実行レベルを制御します。 |
tiflash_fine_grained_shuffle_batch_size | 新規追加 | Fine Grained Shuffle が有効な場合、TiFlash にプッシュ ダウンされたウィンドウ関数を並行して実行できます。この変数は、送信者によって送信されるデータのバッチ サイズを制御します。行の累積数がこの値を超えると、送信者はデータを送信します。 |
tidb_default_string_match_selectivity | 新規追加 | この変数は、行数を見積もるときのフィルタ条件でlike 、 rlike 、およびregexp 関数のデフォルトの選択性を設定するために使用されます。この変数は、TopN を有効にしてこれらの関数を推定するかどうかも制御します。 |
tidb_enable_analyze_snapshot | 新規追加 | この変数は、実行時に過去のデータを読み取るか最新のデータを読み取るかを制御しますANALYZE 。 |
tidb_generate_binary_plan | 新規追加 | この変数は、スロー ログとステートメント サマリーでバイナリ エンコードされた実行プランを生成するかどうかを制御します。 |
tidb_opt_skew_distinct_agg | 新規追加 | この変数は、オプティマイザがDISTINCT の集約関数を 2 レベルの集約関数に書き換えるかどうか ( SELECT b, COUNT(DISTINCT a) FROM t GROUP BY b をSELECT b, COUNT(a) FROM (SELECT b, a FROM t GROUP BY b, a) t GROUP BY b に書き換えるなど) を設定します。 |
tidb_enable_noop_variables | 新規追加 | この変数は、 SHOW [GLOBAL] VARIABLES の結果にnoop 変数を表示するかどうかを制御します。 |
tidb_max_paging_size | 新規追加 | この変数は、コプロセッサーのページング要求プロセス中に行の最小数を設定するために使用されます。 |
tidb_min_paging_size | 新規追加 | この変数は、コプロセッサーのページング要求プロセス中に行の最大数を設定するために使用されます。 |
tidb_txn_commit_batch_size | 新規追加 | この変数は、TiDB が TiKV に送信するトランザクション コミット リクエストのバッチ サイズを制御するために使用されます。 |
tidb_enable_change_multi_schema | 削除しました | この変数は、1 つのALTER TABLE ステートメントで複数の列またはインデックスを変更できるかどうかを制御するために使用されます。 |
tidb_enable_outer_join_reorder | 修正済み | この変数は、TiDB の結合したテーブルの再配置 Reorder アルゴリズムが Outer Join をサポートするかどうかを制御します。 v6.1.0 では、デフォルト値はON です。これは、Join Reorder の Outer Join のサポートがデフォルトで有効になっていることを意味します。 v6.2.0 以降、デフォルト値はOFF です。これは、サポートがデフォルトで無効になっていることを意味します。 |
Configuration / コンフィグレーションファイルのパラメーター
Configuration / コンフィグレーションファイル | Configuration / コンフィグレーション | タイプを変更 | 説明 |
---|---|---|---|
TiDB | フィードバック確率 | 削除しました | この構成は有効ではなくなり、推奨されません。 |
TiDB | クエリ フィードバック制限 | 削除しました | この構成は有効ではなくなり、推奨されません。 |
TiKV | サーバー.simplify-metrics | 新規追加 | この構成は、返されたモニタリング メトリックを単純化するかどうかを指定します。 |
TiKV | quota.background-cpu-time | 新規追加 | この構成は、TiKV バックグラウンドが読み取りおよび書き込み要求を処理するために使用する CPU リソースのソフト制限を指定します。 |
TiKV | quota.background-write-bandwidth | 新規追加 | この構成は、バックグラウンド トランザクションがデータを書き込む帯域幅のソフト リミットを指定します (現在は有効ではありません)。 |
TiKV | quota.background-read-bandwidth | 新規追加 | この構成は、バックグラウンド トランザクションとコプロセッサがデータを読み取る帯域幅のソフト リミットを指定します (現在は有効ではありません)。 |
TiKV | quota.enable-auto-tune | 新規追加 | この構成では、クォータの自動調整を有効にするかどうかを指定します。この構成項目が有効になっている場合、TiKV は、TiKV インスタンスの負荷に基づいて、バックグラウンド リクエストのクォータを動的に調整します。 |
TiKV | rocksdb.enable-pipelined-commit | 削除しました | この構成は有効ではなくなりました。 |
TiKV | gc-マージ-リライト | 削除しました | この構成は有効ではなくなりました。 |
TiKV | ログバックアップを有効にします | 新規追加 | この構成は、TiKV でログ バックアップを有効にするかどうかを制御します。 |
TiKV | log-backup.file-size-limit | 新規追加 | この構成では、ログ バックアップ データのサイズ制限を指定します。この制限に達すると、データは自動的に外部ストレージにフラッシュされます。 |
TiKV | log-backup.initial-scan-pending-memory-quota | 新規追加 | この構成は、インクリメンタル スキャン データの格納に使用されるキャッシュのクォータを指定します。 |
TiKV | log-backup.max-flush-interval | 新規追加 | この構成では、ログ バックアップでバックアップ データを外部ストレージに書き込む最大間隔を指定します。 |
TiKV | log-backup.initial-scan-rate-limit | 新規追加 | この構成では、ログ バックアップの増分データ スキャンでのスループットのレート制限を指定します。 |
TiKV | log-backup.num-threads | 新規追加 | この構成は、ログ バックアップで使用されるスレッドの数を指定します。 |
TiKV | ログバックアップ.一時パス | 新規追加 | この構成は、外部ストレージにフラッシュされる前にログ ファイルが書き込まれる一時パスを指定します。 |
PD | replication-mode.dr-auto-sync.wait-async-timeout | 削除しました | この構成は有効にならず、削除されます。 |
PD | replication-mode.dr-auto-sync.wait-sync-timeout | 削除しました | この構成は有効にならず、削除されます。 |
ティフラッシュ | storage.format_version | 修正済み | デフォルト値のformat_version は、v6.2.0 以降のバージョンのデフォルト形式である4 に変更され、書き込み増幅とバックグラウンド タスクのリソース消費が削減されます。 |
ティフラッシュ | profile.default.dt_enable_read_thread | 新規追加 | この構成は、スレッド プールを使用してストレージ エンジンからの読み取り要求を処理するかどうかを制御します。デフォルト値はfalse です。 |
ティフラッシュ | profile.default.dt_page_gc_threshold | 新規追加 | この構成は、PageStorage データ ファイル内の有効なデータの最小比率を指定します。 |
TiCDC | --overwrite-checkpoint-ts | 新規追加 | この構成は、 cdc cli changefeed resume サブコマンドに追加されます。 |
TiCDC | --未確認 | 新規追加 | この構成は、 cdc cli changefeed resume サブコマンドに追加されます。 |
DM | モード | 新規追加 | この構成はバリデータ パラメータです。オプションの値はfull 、 fast 、およびnone です。デフォルト値はnone で、データを検証しません。 |
DM | ワーカー数 | 新規追加 | この構成はバリデーターのパラメーターであり、バックグラウンドでの検証ワーカーの数を指定します。デフォルト値は4 です。 |
DM | 行エラー遅延 | 新規追加 | この構成はバリデータ パラメータです。行が指定された時間内に検証されない場合、エラー行としてマークされます。デフォルト値は 30m で、これは 30 分を意味します。 |
TiDB Lightning | tikv-importer.store-write-bwlimit | 新規追加 | この構成は、 TiDB Lightningが各 TiKV ストアにデータを書き込むときの書き込み帯域幅を決定します。デフォルト値は0 で、帯域幅が制限されていないことを示します。 |
TiDB Lightning | tikv-importer.disk-quota | 新規追加 | この設定により、 TiDB Lightningが使用するストレージ スペースが制限されます。 |
その他
- TiFlash
format_version
は4
から3
にダウングレードできません。詳細については、 TiFlash v6.2.0 アップグレード ガイドを参照してください。 - v6.2.0 以降のバージョンでは、デフォルト値
false
のdt_enable_logical_split
を維持し、それをtrue
に変更しないことを強くお勧めします。詳細については、既知の問題#5576を参照してください。 - バックアップ クラスタに TiFlash レプリカがある場合、PITR を実行した後、復元クラスタには TiFlash レプリカのデータが含まれません。 TiFlash レプリカからデータを復元するには、TiFlash レプリカを手動で構成する必要があります。
exchange partition
DDL ステートメントを実行すると、PITR が失敗する可能性があります。アップストリーム データベースが TiDB Lightning の物理インポート モードを使用してデータをインポートする場合、ログ バックアップでデータをバックアップすることはできません。データのインポート後に完全バックアップを実行することをお勧めします。 PITR のその他の互換性の問題については、 PITR の制限を参照してください。 - TiDB v6.2.0以降、データ復元時にパラメータ
--with-sys-table=true
を指定することで、mysql
のスキーマにテーブルを復元できるようになりました。 ALTER TABLE
のステートメントを実行して複数の列またはインデックスを追加、削除、または変更すると、TiDB は、同じ DDL ステートメントの変更に関係なく、ステートメントの実行前後のテーブルを比較して、テーブルの整合性をチェックします。一部のシナリオでは、DDL の実行順序は MySQL と完全には互換性がありません。- TiDB コンポーネントが v6.2.0 以降の場合、TiKV コンポーネントは v6.2.0 より前であってはなりません。
- TiKV はオンライン構成をサポートする構成アイテム
split.region-cpu-overload-threshold-ratio
を追加します。 - スロー クエリ ログ
information_schema.statements_summary
およびinformation_schema.slow_query
は、バイナリ形式でエンコードされたbinary_plan
または実行プランをエクスポートできます。 - 2 つの列が
SHOW TABLE ... REGIONS
ステートメントに追加されます:SCHEDULING_CONSTRAINTS
とSCHEDULING_STATE
は、SQL での配置のリージョンスケジュール制約と現在のスケジュール状態をそれぞれ示します。 - TiDB v6.2.0 以降、RawKV のデータ変更をTiKV-CDC経由で取得できます。
- トランザクションを指定されたセーブポイントにロールバックするために
ROLLBACK TO SAVEPOINT
が使用される場合、MySQL は指定されたセーブポイントの後にのみ保持されたロックを解放しますが、TiDB ペシミスティック トランザクションでは、TiDB は指定されたセーブポイントの後に保持されたロックをすぐには解放しません。代わりに、トランザクションがコミットまたはロールバックされると、TiDB はすべてのロックを解放します。 - TiDB v6.2.0 以降、
SELECT tidb_version()
ステートメントは Store タイプ (tikv または unistore) も返します。 - TiDB には隠しシステム変数がなくなりました。
- TiDB v6.2.0 では、2 つの新しいシステム テーブルが導入されています。
INFORMATION_SCHEMA.VARIABLES_INFO
: TiDB システム変数に関する情報を表示するために使用されます。PERFORMANCE_SCHEMA.SESSION_VARIABLES
: TiDB セッションレベルのシステム変数に関する情報を表示するために使用されます。
削除された機能
TiDB v6.2.0 以降、BR を使用した RawKV のバックアップと復元は非推奨になりました。
改良点
TiDB
SHOW COUNT(*) WARNINGS
およびSHOW COUNT(*) ERRORS
ステートメント#25068 @ リクズンをサポートもう
SHOW TABLES/DATABASES LIKE …
つの出力を MySQL 互換にします。出力の列名にはLIKE
の値#35116 @ リクズンが含まれていますJSON 関連関数のパフォーマンスを改善する#35859 @ wjhuang2016
SHA-2 #35998 @ ウィルスディフェンダーを使用したパスワード ログインの検証速度の向上
コプロセッサー通信プロトコルを最適化します。これにより、データを読み取るときの TiDB プロセスのメモリ消費を大幅に削減でき、テーブルをスキャンしてDumplingによってデータをエクスポートするシナリオでの OOM の問題をさらに軽減できます。この通信プロトコルを (SESSION または GLOBAL のスコープで) 有効にするかどうかを制御するために、システム変数
tidb_enable_paging
が導入されました。このプロトコルはデフォルトで無効になっています。有効にするには、変数値をtrue
#35633 @ ティアンカイアマ @ wshwsh12に設定します。一部の演算子 (HashJoin、HashAgg、Update、Delete) のメモリ追跡の精度を最適化 ( #35634 、 #35631 、 #35635 @ wshwsh12 ) ( #34096 @ エキキシウム )
システム テーブル
INFORMATION_SCHEMA.DATA_LOCK_WAIT
は、オプティミスティック トランザクション#34609 @ ロングファングソンのロック情報の記録をサポートします。
TiKV
PD
ティフラッシュ
ツール
バックアップと復元 (BR)
- バックアップ データのディレクトリ構造を調整して、大規模なクラスター バックアップ#30087 @ MoCuishle28での S3 レート制限によって引き起こされるバックアップの失敗を修正します。
TiCDC
TiDB Lightning
TiUP
バグの修正
TiDB
- パーティション キーがクエリ条件で使用され、照合がクエリ パーティション テーブル#32749 @ ミヨンスのものと異なる場合、パーティションが誤ってプルーニングされる問題を修正します。
- ホスト#33061 @ モルゴに大文字がある場合、付与されたロールに
SET ROLE
が一致しない問題を修正 auto_increment
の列をドロップできない問題を修正#34891 @ 定義済み2014- 削除された一部の構成アイテムが
SHOW CONFIG
に表示される問題を修正#34867 @ モルゴ SHOW DATABASES LIKE …
の大文字と小文字が区別される問題を修正#34766 @ e1ijah1SHOW TABLE STATUS LIKE ...
の大文字と小文字が区別される問題を修正#7518 @ リクズン- 非厳密モード#34931 @ e1ijah1で
max-index-length
が依然としてエラーを報告する問題を修正します。 ALTER COLUMN ... DROP DEFAULT
が動かない問題を修正#35018 @ 定義済み2014- テーブルを作成するときに、デフォルト値と列のタイプが一致せず、自動的に修正されない問題を修正します#34881 @ ロイド・ポティガー
DROP USER
#35059 @ ルクァンチャオを実行した後、mysql.columns_priv
テーブルのデータが同期的に削除されない問題を修正します。- 一部のシステムのスキーマ内でのテーブルの作成を禁止することで、DDL ジャムの問題を修正します#35205 @ 接線
- パーティション化されたテーブルをクエリすると、場合によっては「インデックスが範囲外」および「未使用のインデックス」エラーが報告される可能性があるという問題を修正します#35181 @ ミヨンス
INTERVAL expr unit + expr
がエラー#30253 @ ミヨンスを報告する可能性がある問題を修正します- トランザクション#35644 @ DJshow832で作成した後に一時テーブルが見つからない不具合を修正
- 照合順序を
ENUM
列#31637 @ wjhuang2016に設定すると発生するpanicの問題を修正します。 - 1 つの PD ノードがダウンすると、他の PD ノード#35708 @ 接線が再試行されないために
information_schema.TIKV_REGION_STATUS
のクエリが失敗する問題を修正します SHOW CREATE TABLE …
がSET character_set_results = GBK
#31338 @ 接線の後にセットまたはENUM
列を正しく表示できない問題を修正します- システム変数
tidb_log_file_max_days
およびtidb_config
#35190 @ モルゴの誤ったスコープを修正 SHOW CREATE TABLE
の出力がENUM
またはSET
列#36317 @ 定義済み2014の MySQL と互換性がないという問題を修正します- テーブルを作成するとき、
LONG BYTE
列の動作が MySQL #36239 @ 定義済み2014と互換性がない問題を修正します。 - 一時テーブル#36224 @ DJshow832で
auto_increment = x
が有効にならない問題を修正 - 列を同時に変更するときの間違ったデフォルト値を修正#35846 @ wjhuang2016
- 可用性を向上させるために、異常な TiKV ノードにリクエストを送信しないようにする#34906 @ スティックナーフ
- LOAD DATA ステートメントで列リストが機能しない問題を修正#35198 @ スペード・ア・タン
- 一部のシナリオでペシミスティック ロックが一意でないセカンダリ インデックス#36235 @ エキキシウムに誤って追加される問題を修正します。
TiKV
- 悲観的なトランザクション#11612 @ スティックナーフで
WriteConflict
エラーを報告しないようにする - 非同期コミットが有効になっている場合にペシミスティック トランザクションでコミット レコードが重複する可能性がある問題を修正します#12615 @ スティックナーフ
storage.api-version
を1
から2
#12600 @ ピンギュに変更すると TiKV がパニックになる問題を修正- TiKV と PD #12518 @ 5kbpsの間でリージョンサイズの設定が一致しない問題を修正
- TiKV が PD クライアント#12506 、 #12827 @ コナー1996を再接続し続ける問題を修正
- 空の文字列#12673 @ wshwsh12の型変換を実行すると TiKV がパニックになる問題を修正
DATETIME
の値に分数とZ
#12739 @ ゲンリキが含まれている場合に発生する時間解析エラーの問題を修正します。- Apply オペレーターによって TiKV RocksDB に書き込まれた perf コンテキストが粗粒度#11044 @ Lykxサシネーターである問題を修正します。
- バックアップ / 輸入 / CDCの構成が無効な場合に TiKV の起動に失敗する問題を修正#12771 @ 3ポインター
- ピアの分割と破棄が同時に行われると発生する可能性があるpanicの問題を修正します#12825 @ ビジージェイ
- ソース ピアがリージョンマージ プロセス#12663 @ ビジージェイでスナップショットによってログをキャッチするときに発生する可能性があるpanicの問題を修正します。
max_sample_size
が0
#11192 @ Lykxサシネーターに設定されている場合に統計を分析することによって引き起こされるpanicの問題を修正します- Raft Engineが有効になっているときに暗号化キーがクリーンアップされない問題を修正します#12890 @ タボキー
get_valid_int_prefix
関数が TiDB と互換性がない問題を修正します。たとえば、FLOAT
型はINT
#13045 @ グオシャオゲに誤って変換されました- 新しいリージョンのコミット ログ期間が長すぎるため、QPS が#13077 @ コナー1996低下する問題を修正します。
- リージョンのハートビートが中断された後、PD が TiKV に再接続しない問題を修正します#12934 @ バタフライ
- 悲観的なトランザクション#11612 @ スティックナーフで
ツール
バックアップと復元 (BR)
- レート制限されたバックアップ タスク#31722 @ MoCuishle28を終了した後、BR がレート制限をリセットしない問題を修正します。
寄稿者
TiDB コミュニティの次の貢献者に感謝します。