- TiDBについて
- クイックスタート
- 発展させる
- 概要
- クイックスタート
- TiDB Cloud(開発者層) で TiDB クラスターを構築する
- TiDB の CRUD SQL
- TiDB でシンプルな CRUD アプリを構築する
- 応用例
- TiDB に接続する
- データベース スキーマの設計
- 書き込みデータ
- データの読み取り
- 取引
- 最適化
- トラブルシューティング
- 参照
- 書店のサンプル アプリケーション
- ガイドライン
- アーカイブされたドキュメント
- クラウドネイティブ開発環境
- サードパーティのサポート
- デプロイ
- 移行する
- 管理
- 監視と警告
- トラブルシューティング
- TiDB トラブルシューティング マップ
- 遅いクエリを特定する
- 遅いクエリを分析する
- SQL 診断
- Top SQLを使用して高価なクエリを特定する
- ログを使用して高価なクエリを特定する
- ステートメント要約表
- ホットスポットの問題のトラブルシューティング
- 増加した読み取りおよび書き込み遅延のトラブルシューティング
- クラスターのオンサイト情報の保存と復元
- クラスタ セットアップのトラブルシューティング
- 高いディスク I/O 使用率のトラブルシューティング
- ロック競合のトラブルシューティング
- TiFlash のトラブルシューティング
- オプティミスティック トランザクションでの書き込み競合のトラブルシューティング
- データとインデックス間の不一致のトラブルシューティング
- 性能チューニング
- チューニングガイド
- Configuration / コンフィグレーションのチューニング
- システムのチューニング
- ソフトウェアのチューニング
- Configuration / コンフィグレーション
- コプロセッサ キャッシュ
- SQL チューニング
- チュートリアル
- TiDB ツール
- 概要
- ユースケース
- ダウンロード
- TiUP
- ドキュメンテーション マップ
- 概要
- 用語と概念
- TiUP コンポーネントの管理
- FAQ
- トラブルシューティングガイド
- コマンドリファレンス
- 概要
- TiUP コマンド
- TiUP クラスタ コマンド
- 概要
- tiup cluster audit
- tiup cluster check
- tiup cluster clean
- tiup cluster deploy
- tiup cluster destroy
- tiup cluster disable
- tiup cluster display
- tiup cluster edit-config
- tiup cluster enable
- tiup cluster help
- tiup cluster import
- tiup cluster list
- tiup cluster patch
- tiup cluster prune
- tiup cluster reload
- tiup cluster rename
- tiup cluster replay
- tiup cluster restart
- tiup cluster scale-in
- tiup cluster scale-out
- tiup cluster start
- tiup cluster stop
- tiup cluster template
- tiup cluster upgrade
- TiUP DMコマンド
- TiDB クラスター トポロジ リファレンス
- DM クラスタ トポロジ リファレンス
- ミラー リファレンス ガイド
- TiUP コンポーネント
- PingCAPクリニック診断サービス
- TiDB Operator
- Dumpling
- TiDB Lightning
- TiDB データ移行
- バックアップと復元 (BR)
- Binlog
- TiCDC
- Dumpling
- 同期差分インスペクター
- ティスパーク
- 参照
- クラスタ アーキテクチャ
- 主な監視指標
- セキュリティ
- 権限
- SQL
- SQL 言語の構造と構文
- SQL ステートメント
ADD COLUMN
ADD INDEX
ADMIN
ADMIN CANCEL DDL
ADMIN CHECKSUM TABLE
ADMIN CHECK [TABLE|INDEX]
ADMIN SHOW DDL [JOBS|QUERIES]
ADMIN SHOW TELEMETRY
ALTER DATABASE
ALTER INDEX
ALTER INSTANCE
ALTER PLACEMENT POLICY
ALTER TABLE
ALTER TABLE COMPACT
ALTER USER
ANALYZE TABLE
BACKUP
BATCH
BEGIN
CHANGE COLUMN
COMMIT
CHANGE DRAINER
CHANGE PUMP
CREATE [GLOBAL|SESSION] BINDING
CREATE DATABASE
CREATE INDEX
CREATE PLACEMENT POLICY
CREATE ROLE
CREATE SEQUENCE
CREATE TABLE LIKE
CREATE TABLE
CREATE USER
CREATE VIEW
DEALLOCATE
DELETE
DESC
DESCRIBE
DO
DROP [GLOBAL|SESSION] BINDING
DROP COLUMN
DROP DATABASE
DROP INDEX
DROP PLACEMENT POLICY
DROP ROLE
DROP SEQUENCE
DROP STATS
DROP TABLE
DROP USER
DROP VIEW
EXECUTE
EXPLAIN ANALYZE
EXPLAIN
FLASHBACK TABLE
FLUSH PRIVILEGES
FLUSH STATUS
FLUSH TABLES
GRANT <privileges>
GRANT <role>
INSERT
KILL [TIDB]
LOAD DATA
LOAD STATS
MODIFY COLUMN
PREPARE
RECOVER TABLE
RENAME INDEX
RENAME TABLE
REPLACE
RESTORE
REVOKE <privileges>
REVOKE <role>
ROLLBACK
SELECT
SET DEFAULT ROLE
SET [NAMES|CHARACTER SET]
SET PASSWORD
SET ROLE
SET TRANSACTION
SET [GLOBAL|SESSION] <variable>
SHOW ANALYZE STATUS
SHOW [BACKUPS|RESTORES]
SHOW [GLOBAL|SESSION] BINDINGS
SHOW BUILTINS
SHOW CHARACTER SET
SHOW COLLATION
SHOW [FULL] COLUMNS FROM
SHOW CONFIG
SHOW CREATE PLACEMENT POLICY
SHOW CREATE SEQUENCE
SHOW CREATE TABLE
SHOW CREATE USER
SHOW DATABASES
SHOW DRAINER STATUS
SHOW ENGINES
SHOW ERRORS
SHOW [FULL] FIELDS FROM
SHOW GRANTS
SHOW INDEX [FROM|IN]
SHOW INDEXES [FROM|IN]
SHOW KEYS [FROM|IN]
SHOW MASTER STATUS
SHOW PLACEMENT
SHOW PLACEMENT FOR
SHOW PLACEMENT LABELS
SHOW PLUGINS
SHOW PRIVILEGES
SHOW [FULL] PROCESSSLIST
SHOW PROFILES
SHOW PUMP STATUS
SHOW SCHEMAS
SHOW STATS_HEALTHY
SHOW STATS_HISTOGRAMS
SHOW STATS_META
SHOW STATUS
SHOW TABLE NEXT_ROW_ID
SHOW TABLE REGIONS
SHOW TABLE STATUS
SHOW [FULL] TABLES
SHOW [GLOBAL|SESSION] VARIABLES
SHOW WARNINGS
SHUTDOWN
SPLIT REGION
START TRANSACTION
TABLE
TRACE
TRUNCATE
UPDATE
USE
WITH
- データ型
- 関数と演算子
- クラスタ化インデックス
- 制約
- 生成された列
- SQL モード
- テーブル属性
- 取引
- ガベージ コレクション (GC)
- ビュー
- パーティショニング
- 一時テーブル
- キャッシュされたテーブル
- 文字セットと照合順序
- SQL の配置規則
- システム テーブル
mysql
- 情報_スキーマ
- 概要
ANALYZE_STATUS
CLIENT_ERRORS_SUMMARY_BY_HOST
CLIENT_ERRORS_SUMMARY_BY_USER
CLIENT_ERRORS_SUMMARY_GLOBAL
CHARACTER_SETS
CLUSTER_CONFIG
CLUSTER_HARDWARE
CLUSTER_INFO
CLUSTER_LOAD
CLUSTER_LOG
CLUSTER_SYSTEMINFO
COLLATIONS
COLLATION_CHARACTER_SET_APPLICABILITY
COLUMNS
DATA_LOCK_WAITS
DDL_JOBS
DEADLOCKS
ENGINES
INSPECTION_RESULT
INSPECTION_RULES
INSPECTION_SUMMARY
KEY_COLUMN_USAGE
METRICS_SUMMARY
METRICS_TABLES
PARTITIONS
PLACEMENT_POLICIES
PROCESSLIST
REFERENTIAL_CONSTRAINTS
SCHEMATA
SEQUENCES
SESSION_VARIABLES
SLOW_QUERY
STATISTICS
TABLES
TABLE_CONSTRAINTS
TABLE_STORAGE_STATS
TIDB_HOT_REGIONS
TIDB_HOT_REGIONS_HISTORY
TIDB_INDEXES
TIDB_SERVERS_INFO
TIDB_TRX
TIFLASH_REPLICA
TIKV_REGION_PEERS
TIKV_REGION_STATUS
TIKV_STORE_STATUS
USER_PRIVILEGES
VIEWS
METRICS_SCHEMA
- UI
- TiDB ダッシュボード
- 概要
- 管理
- アクセス
- 概要ページ
- クラスター情報ページ
- Top SQLページ
- キー ビジュアライザー ページ
- メトリクス関係グラフ
- SQL ステートメントの分析
- スロークエリページ
- クラスタ診断
- 検索ログ ページ
- インスタンスのプロファイリング
- セッションの管理とConfiguration / コンフィグレーション
- FAQ
- CLI
- コマンド ライン フラグ
- Configuration / コンフィグレーションファイルのパラメーター
- システム変数
- ストレージ エンジン
- テレメトリー
- エラーコード
- テーブル フィルター
- トポロジ ラベルごとにレプリカをスケジュールする
- よくある質問
- リリースノート
- すべてのリリース
- リリースのタイムライン
- TiDB のバージョニング
- v6.1
- v6.0
- v5.4
- v5.3
- v5.2
- v5.1
- v5.0
- v4.0
- v3.1
- v3.0
- v2.1
- v2.0
- v1.0
- 用語集
TiDB6.0.0リリースノート
発売日:2022年4月7日
TiDBバージョン:6.0.0-DMR
6.0.0-DMRでは、主な新機能または改善点は次のとおりです。
- SQLで配置ルールをサポートして、データ配置のより柔軟な管理を提供します。
- カーネルレベルでデータとインデックスの間に整合性チェックを追加します。これにより、システムの安定性と堅牢性が向上し、リソースのオーバーヘッドが非常に低くなります。
- 非専門家向けのセルフサービスのデータベースパフォーマンス監視および診断機能であるTop SQLを提供します。
- クラスタパフォーマンスデータを常に収集する継続的プロファイリングをサポートし、技術専門家のMTTRを削減します。
- ホットスポットの小さなテーブルをメモリにキャッシュします。これにより、アクセスパフォーマンスが大幅に向上し、スループットが向上し、アクセスの待ち時間が短縮されます。
- インメモリペシミスティックロックを最適化します。ペシミスティックロックによって引き起こされるパフォーマンスのボトルネックの下で、ペシミスティックロックのメモリ最適化により、レイテンシを10%削減し、QPSを10%向上させることができます。
- プリペアドステートメントを拡張して実行プランを共有します。これにより、CPUリソースの消費が減り、SQLの実行効率が向上します。
- より多くの式のプッシュダウンとエラスティックスレッドプールの一般的な可用性(GA)をサポートすることにより、MPPエンジンのコンピューティングパフォーマンスを向上させます。
- DM WebUIを追加して、多数の移行タスクの管理を容易にします。
- 大規模なクラスターでデータを複製する際のTiCDCの安定性と効率を向上させます。 TiCDCは、100,000テーブルの同時複製をサポートするようになりました。
- TiKVノードを再起動した後、リーダーのバランシングを加速します。これにより、再起動後のビジネス回復の速度が向上します。
- 統計の自動更新のキャンセルをサポートします。これにより、リソースの競合が減少し、SQLパフォーマンスへの影響が制限されます。
- TiDBクラスターの自動診断サービスであるPingCAPクリニックを提供します(テクニカルプレビューバージョン)。
- エンタープライズレベルのデータベース管理プラットフォームであるTiDBEnterpriseManagerを提供します。
また、TiDBのHTAPソリューションのコアコンポーネントとして、 TiFlashTMはこのリリースで正式にオープンソースになっています。詳細については、 TiFlashリポジトリを参照してください。
リリース戦略の変更
TiDB v6.0.0以降、TiDBは次の2種類のリリースを提供します。
長期サポートリリース
ロングタームサポート(LTS)リリースは、約6か月ごとにリリースされます。 LTSリリースでは、新機能と改善点が導入され、リリースライフサイクル内でパッチリリースが受け入れられます。たとえば、v6.1.0はLTSリリースになります。
開発マイルストーンリリース
開発マイルストーンリリース(DMR)は、約2か月ごとにリリースされます。 DMRは新しい機能と改善を導入しますが、パッチリリースは受け入れません。オンプレミスユーザーが実稼働環境でDMRを使用することはお勧めしません。たとえば、v6.0.0-DMRはDMRです。
TiDB v6.0.0はDMRであり、そのバージョンは6.0.0-DMRです。
新機能
SQL
データのSQLベースの配置ルール
TiDBは、優れたスケーラビリティを備えた分散データベースです。通常、データは複数のサーバーまたは複数のデータセンターに展開されます。したがって、データスケジューリング管理は、TiDBの最も重要な基本機能の1つです。ほとんどの場合、ユーザーはデータのスケジュールと管理の方法を気にする必要はありません。ただし、アプリケーションの複雑さが増すにつれて、分離とアクセス遅延によって引き起こされる展開の変更は、TiDBにとって新たな課題になっています。 v6.0.0以降、TiDBはSQLインターフェイスに基づくデータのスケジューリングおよび管理機能を公式に提供します。レプリカ数、役割の種類、データの配置場所などのディメンションでの柔軟なスケジューリングと管理をサポートします。 TiDBは、マルチサービス共有クラスターおよびクロスAZ展開でのデータ配置のより柔軟な管理もサポートします。
データベースによるTiFlashレプリカの構築をサポートします。データベース内のすべてのテーブルにTiFlashレプリカを追加するには、単一のSQLステートメントを使用するだけで済み、運用と保守のコストを大幅に節約できます。
取引
カーネルレベルでのデータインデックスの整合性のチェックを追加します
トランザクションの実行時にデータインデックスの整合性のチェックを追加します。これにより、システムの安定性と堅牢性が向上し、リソースのオーバーヘッドが非常に低くなります。
tidb_enable_mutation_checker
変数とtidb_txn_assertion_level
変数を使用して、チェック動作を制御できます。デフォルト構成では、ほとんどのシナリオでQPSの低下は2%以内に制御されます。整合性チェックのエラーの説明については、 ユーザードキュメントを参照してください。
可観測性
Top SQL:専門家以外のパフォーマンス診断
Top SQLは、DBAおよびアプリ開発者向けのTiDBダッシュボードのセルフサービスデータベースパフォーマンス監視および診断機能であり、TiDBv6.0で一般的に利用可能になりました。
専門家向けの既存の診断機能とは異なり、 Top SQLは専門家以外向けに設計されています。相関関係を見つけたり、 Raftスナップショット、RocksDB、MVCC、TSOなどのTiDB内部メカニズムを理解したりするために、何千もの監視チャートをトラバースする必要はありません。Top SQLを使用してデータベースの負荷をすばやく分析し、アプリのパフォーマンスを向上させるには、基本的なデータベースの知識(インデックス、ロックの競合、実行プランなど)のみが必要です。
Top SQLはデフォルトでは有効になっていません。有効にすると、 Top SQLは各TiKVまたはTiDBノードのリアルタイムCPU負荷を提供します。したがって、CPU負荷が高いSQLステートメントを一目見ただけで見つけて、データベースのホットスポットや突然の負荷の増加などの問題をすばやく分析できます。たとえば、 Top SQLを使用して、単一のTiKVノードの90%のCPUを消費する異常なクエリを特定して診断できます。
継続的なプロファイリングをサポートする
TiDBダッシュボードでは、継続的プロファイリング機能が導入されています。この機能は、TiDBv6.0で一般的に利用可能になりました。継続的なプロファイリングはデフォルトでは有効になっていません。有効にすると、個々のTiDB、TiKV、およびPDインスタンスのパフォーマンスデータが常に収集され、オーバーヘッドはごくわずかです。技術専門家は、履歴パフォーマンスデータを使用して、問題の再現が困難な場合でも、メモリ消費量が多いなどの問題の根本原因をさかのぼって特定できます。このようにして、平均修復時間(MTTR)を短縮できます。
パフォーマンス
ホットスポットの小さなテーブルをキャッシュする
ホットスポットの小さなテーブルにアクセスするシナリオのユーザーアプリケーションの場合、TiDBはホットスポットテーブルをメモリに明示的にキャッシュすることをサポートします。これにより、アクセスパフォーマンスが大幅に向上し、スループットが向上し、アクセスの待ち時間が短縮されます。このソリューションは、サードパーティのキャッシュミドルウェアの導入を効果的に回避し、アーキテクチャの複雑さを軽減し、運用と保守のコストを削減できます。このソリューションは、構成テーブルや為替レートテーブルなど、小さなテーブルが頻繁にアクセスされるが更新されることはめったにないシナリオに適しています。
インメモリ悲観的ロック
TiDB v6.0.0以降、メモリ内のペシミスティックロックはデフォルトで有効になっています。この機能を有効にすると、悲観的なトランザクションロックがメモリで管理されます。これにより、ペシミスティックロックの永続化とロック情報のRaftレプリケーションが回避され、ペシミスティックトランザクションロックの管理のオーバーヘッドが大幅に削減されます。ペシミスティックロックによって引き起こされるパフォーマンスのボトルネックの下で、ペシミスティックロックのメモリ最適化により、レイテンシを10%削減し、QPSを10%向上させることができます。
読み取りコミット分離レベルでTSOを取得するための最適化
クエリの待ち時間を短縮するために、読み取りと書き込みの競合がまれな場合、TiDBはコミットされた分離レベルを読み取るに
tidb_rc_read_check_ts
のシステム変数を追加して、不要なTSOを減らします。この変数はデフォルトで無効になっています。変数が有効になっている場合、この最適化によりTSOの重複が回避され、読み取りと書き込みの競合がないシナリオでの待ち時間が短縮されます。ただし、読み取りと書き込みの競合が頻繁に発生するシナリオでは、この変数を有効にするとパフォーマンスが低下する可能性があります。実行計画を共有するために準備されたステートメントを強化する
SQL実行プランを再利用すると、SQLステートメントの解析時間を効果的に短縮し、CPUリソースの消費を減らし、SQLの実行効率を向上させることができます。 SQLチューニングの重要な方法の1つは、SQL実行プランを効果的に再利用することです。 TiDBは、プリペアドステートメントとの実行プランの共有をサポートしています。ただし、準備されたステートメントが閉じられると、TiDBは対応するプランキャッシュを自動的にクリアします。その後、TiDBは繰り返されるSQLステートメントを不必要に解析し、実行効率に影響を与える可能性があります。 v6.0.0以降、TiDBは、
tidb_ignore_prepared_cache_close_stmt
パラメーター(デフォルトでは無効)を使用してCOM_STMT_CLOSE
コマンドを無視するかどうかの制御をサポートしています。パラメータを有効にすると、TiDBはプリペアドステートメントを閉じるコマンドを無視し、実行プランをキャッシュに保持して、実行プランの再利用率を向上させます。クエリのプッシュダウンを改善する
コンピューティングをストレージから分離するネイティブアーキテクチャにより、TiDBは演算子をプッシュダウンすることで無効なデータを除外することをサポートします。これにより、TiDBとTiKV間のデータ転送が大幅に削減され、クエリの効率が向上します。 v6.0.0では、TiDBはより多くの式と
BIT
のデータ型をTiKVにプッシュダウンすることをサポートし、式とデータ型を計算する際のクエリ効率を向上させます。ホットスポットインデックスの最適化
単調に増加するデータをバッチでセカンダリインデックスに書き込むと、インデックスのホットスポットが発生し、全体的な書き込みスループットに影響します。 v6.0.0以降、TiDBは、書き込みパフォーマンスを向上させるために、
tidb_shard
関数を使用したインデックスホットスポットの分散をサポートしています。現在、tidb_shard
は一意のセカンダリインデックスにのみ有効です。このアプリケーションフレンドリーなソリューションでは、元のクエリ条件を変更する必要はありません。このソリューションは、高い書き込みスループット、ポイントクエリ、およびバッチポイントクエリのシナリオで使用できます。アプリケーションで範囲クエリによって分散されたデータを使用すると、パフォーマンスが低下する可能性があることに注意してください。したがって、このような場合は確認せずにこの機能を使用しないでください。TiFlash MPPエンジンのパーティションテーブルの動的プルーニングモードをサポート(実験的)
このモードでは、TiDBはTiFlashのMPPエンジンを使用してパーティションテーブルのデータを読み取り、計算できます。これにより、パーティションテーブルのクエリパフォーマンスが大幅に向上します。
MPP エンジンのコンピューティング パフォーマンスを向上させる
より多くの関数と演算子をMPPエンジンにプッシュダウンすることをサポート
IS NOT
関数:IS
- 文字
NOT REGEXP()
関数:REGEXP()
LEAST(int/real)
関数:GREATEST(int/real)
LAST_DAY()
関数MONTHNAME()
DAYNAME()
DAYOFMONTH()
DAYOFWEEK()
DAYOFYEAR()
- 演算子:反左外側半結合、左外側半結合
エラスティックスレッドプール(デフォルトで有効)はGAになります。この機能は、CPU使用率の向上を目的としています。
安定性
実行計画のベースラインキャプチャを強化する
テーブル名、頻度、ユーザー名などのディメンションを持つブロックリストを追加することにより、実行プランのベースラインキャプチャの使いやすさを向上させます。バインディングをキャッシュするためのメモリ管理を最適化するための新しいアルゴリズムを導入します。ベースラインキャプチャを有効にすると、システムはほとんどのOLTPクエリのバインディングを自動的に作成します。バインドされたステートメントの実行プランが修正され、実行プランの変更によるパフォーマンスの問題が回避されます。ベースラインキャプチャは、メジャーバージョンのアップグレードやクラスタの移行などのシナリオに適用でき、実行プランのリグレッションによって引き起こされるパフォーマンスの問題を軽減するのに役立ちます。
TiKVクォータリミッターをサポート(実験的)
TiKVを使用してデプロイされたマシンのリソースが限られており、フォアグラウンドに大量のリクエストが発生すると、バックグラウンドCPUリソースがフォアグラウンドによって占有され、TiKVのパフォーマンスが不安定になります。 TiDB v6.0.0では、クォータ関連の構成アイテムを使用して、CPUや読み取り/書き込み帯域幅など、フォアグラウンドで使用されるリソースを制限できます。これにより、長期間の重いワークロードでのクラスターの安定性が大幅に向上します。
TiFlashでzstd圧縮アルゴリズムをサポートする
TiFlashには、
profiles.default.dt_compression_method
とprofiles.default.dt_compression_level
の2つのパラメーターが導入されており、ユーザーはパフォーマンスと容量のバランスに基づいて最適な圧縮アルゴリズムを選択できます。デフォルトですべてのI/Oチェック(チェックサム)を有効にする
この機能は、v5.4.0で実験的ものとして導入されました。ユーザーのビジネスに明らかな影響を与えることなく、データの正確性とセキュリティを強化します。
警告:新しいバージョンのデータ形式を、v5.4.0より前のバージョンにダウングレードすることはできません。このようなダウングレード中は、TiFlashレプリカを削除し、ダウングレード後にデータを複製する必要があります。または、 dttoolの移行を参照してダウングレードを実行することもできます。
スレッドの使用率を向上させる
TiFlashは、非同期gRPCおよびMin-TSOスケジューリングメカニズムを導入しています。このようなメカニズムは、スレッドのより効率的な使用を保証し、過剰なスレッドによって引き起こされるシステムクラッシュを回避します。
データ移行
TiDBデータ移行(DM)
WebUIを追加(実験的)
WebUIを使用すると、多数の移行タスクを簡単に管理できます。 WebUIでは、次のことができます。
- ダッシュボードで移行タスクをビューする
- 移行タスクを管理する
- アップストリーム設定を構成する
- レプリケーションステータスのクエリ
- マスターとワーカーの情報をビューする
WebUIはまだ実験的段階であり、開発中です。したがって、試用のみをお勧めします。既知の問題は、WebUIとdmctlを使用して同じタスクを操作すると問題が発生する可能性があることです。この問題は、今後のバージョンで解決される予定です。
エラー処理メカニズムを追加する
移行タスクを中断する問題に対処するために、より多くのコマンドが導入されています。例えば:
- スキーマエラーが発生した場合は、スキーマファイルを個別に編集する代わりに、
binlog-schema update
コマンドの--from-source/--from-target
パラメーターを使用してスキーマファイルを更新できます。 - binlog位置を指定して、DDLステートメントを挿入、置換、スキップ、または元に戻すことができます。
- スキーマエラーが発生した場合は、スキーマファイルを個別に編集する代わりに、
AmazonS3への完全なデータストレージをサポートする
DMがすべてまたは完全なデータ移行タスクを実行する場合、アップストリームからの完全なデータを格納するために十分なハードディスク容量が必要です。 EBSと比較して、AmazonS3は低コストでほぼ無限のストレージを備えています。現在、DMはAmazonS3をダンプディレクトリとして設定することをサポートしています。つまり、すべてまたは完全なデータ移行タスクを実行するときに、S3を使用して完全なデータを保存できます。
指定された時間からの移行タスクの開始をサポート
新しいパラメータ
--start-time
が移行タスクに追加されます。時刻は「2021-10-2100:01:00」または「2021-10-21T00:01:00」の形式で定義できます。この機能は、シャードmysqlインスタンスからインクリメンタルデータを移行およびマージするシナリオで特に役立ちます。具体的には、増分移行タスクで各ソースにbinlog開始点を設定する必要はありません。代わりに、
safe-mode
の--start-time
パラメーターを使用して、増分移行タスクをすばやく作成できます。
TiDB Lightning
許容可能なエラーの最大数の構成をサポート
構成アイテム
lightning.max-error
を追加しました。デフォルト値は0です。値が0より大きい場合、最大エラー機能が有効になります。エンコード中に行でエラーが発生した場合、この行を含むレコードがターゲットTiDBのlightning_task_info.type_error_v1
に追加され、この行は無視されます。エラーのある行がしきい値を超えると、 TiDB Lightningはすぐに終了します。lightning.max-error
の構成と一致して、lightning.task-info-schema-name
の構成項目は、データ保存エラーを報告するデータベースの名前を記録します。この機能は、すべてのタイプのエラーを網羅しているわけではありません。たとえば、構文エラーは適用されません。
TiDBデータ共有サブスクリプション
100,000個のテーブルの同時複製をサポート
TiCDCは、データ処理フローを最適化することにより、各テーブルの増分データを処理するためのリソース消費を削減します。これにより、大規模なクラスターでデータを複製する際の複製の安定性と効率が大幅に向上します。内部テストの結果は、TiCDCが100,000テーブルの同時複製を安定してサポートできることを示しています。
展開とメンテナンス
デフォルトで新しい照合順序ルールを有効にする
v4.0以降、TiDBは、大文字と小文字を区別しない、アクセントを区別しない、およびパディングルールでMySQLと同じように動作する新しい照合順序ルールをサポートしています。新しい照合順序ルールは、デフォルトで無効になっている
new_collations_enabled_on_first_bootstrap
パラメーターによって制御されます。 v6.0以降、TiDBはデフォルトで新しい照合順序ルールを有効にします。この構成は、TiDBクラスタの初期化時にのみ有効になることに注意してください。TiKVノードを再起動した後、リーダーのバランシングを加速します
TiKVノードの再起動後、負荷分散のために、不均一に分散したリーダーを再分散する必要があります。大規模なクラスターでは、リーダーのバランシング時間はリージョンの数と正の相関があります。たとえば、100Kリージョンのリーダーバランシングには20〜30分かかる場合があります。これは、不均一な負荷によるパフォーマンスの問題や安定性のリスクが発生しやすい傾向があります。 TiDB v6.0.0は、バランシングの同時実行性を制御するパラメータを提供し、デフォルト値を元の4倍に拡大します。これにより、リーダーのリバランシング時間が大幅に短縮され、TiKVノードの再起動後のビジネス回復が加速されます。
統計の自動更新のキャンセルをサポート
統計は、SQLのパフォーマンスに影響を与える最も重要な基本データの1つです。統計の完全性と適時性を確保するために、TiDBはバックグラウンドでオブジェクト統計を定期的に自動的に更新します。ただし、統計の自動更新によりリソースの競合が発生し、SQLのパフォーマンスに影響を与える可能性があります。この問題に対処するために、v6.0以降の統計の自動更新を手動でキャンセルできます。
PingCAPクリニック診断サービス(テクニカルプレビュー版)
PingCAPクリニックはTiDBクラスターの診断サービスです。このサービスは、クラスタの問題をリモートでトラブルシューティングするのに役立ち、クラスタのステータスをローカルですばやく確認できます。 PingCAPクリニックを使用すると、TiDBクラスタのライフサイクル全体での安定した動作を保証し、潜在的な問題を予測し、問題の可能性を減らし、クラスタの問題を迅速にトラブルシューティングできます。
クラスタの問題をトラブルシューティングするためのリモートアシスタンスについてPingCAPテクニカルサポートに連絡する場合、 PingCAPクリニックサービスを使用して診断データを収集およびアップロードできるため、トラブルシューティングの効率が向上します。
エンタープライズレベルのデータベース管理プラットフォーム、TiDB Enterprise Manager
TiDB Enterprise Manager(TiEM)は、TiDBデータベースに基づくエンタープライズレベルのデータベース管理プラットフォームであり、ユーザーがオンプレミスまたはパブリッククラウド環境でTiDBクラスターを管理できるようにすることを目的としています。
TiEMは、TiDBクラスターの完全なライフサイクルビジュアル管理を提供するだけでなく、パラメーター管理、バージョンアップグレード、クラスタクローン、アクティブスタンバイクラスタスイッチング、データのインポートとエクスポート、データレプリケーション、データのバックアップと復元サービスなどのワンストップサービスも提供します。 TiEMは、TiDBでのDevOpsの効率を改善し、企業のDevOpsコストを削減できます。
現在、TiEMはTiDBエンタープライズエディションでのみ提供されています。 TiEMを入手するには、 TiDBエンタープライズページからお問い合わせください。
監視コンポーネントの構成のカスタマイズをサポート
TiUPを使用してTiDBクラスタをデプロイすると、TiUPはPrometheus、Grafana、Alertmanagerなどのモニタリングコンポーネントを自動的にデプロイし、スケールアウト後に新しいノードをモニタリングスコープに自動的に追加します。
topology.yaml
のファイルに構成アイテムを追加することにより、監視コンポーネントの構成をカスタマイズできます。
互換性の変更
ノート:
以前のTiDBバージョンからv6.0.0にアップグレードするときに、すべての中間バージョンの互換性の変更に関する注意事項を知りたい場合は、対応するバージョンのリリースノートを確認できます。
システム変数
変数名 | タイプを変更する | 説明 |
---|---|---|
placement_checks | 削除されました | DDLステートメントがSQLでの配置ルールで指定された配置ルールを検証するかどうかを制御します。 tidb_placement_mode に置き換えられました。 |
tidb_enable_alter_placement | 削除されました | SQLの配置ルールを有効にするかどうかを制御します。 |
tidb_mem_quota_hashjoin tidb_mem_quota_indexlookupjoin tidb_mem_quota_indexlookupreader tidb_mem_quota_mergejoin tidb_mem_quota_sort tidb_mem_quota_topn | 削除されました | v5.0以降、これらの変数はtidb_mem_quota_query に置き換えられ、 システム変数ドキュメントから削除されました。互換性を確保するために、これらの変数はソースコードに保持されていました。 TiDB 6.0.0以降、これらの変数もコードから削除されています。 |
tidb_enable_mutation_checker | 新しく追加されました | ミューテーションチェッカーを有効にするかどうかを制御します。デフォルト値はON です。 v6.0.0より前のバージョンからアップグレードする既存のクラスターの場合、ミューテーションチェッカーはデフォルトで無効になっています。 |
tidb_ignore_prepared_cache_close_stmt | 新しく追加されました | プリペアドステートメントを閉じるコマンドを無視するかどうかを制御します。デフォルト値はOFF です。 |
tidb_mem_quota_binding_cache | 新しく追加されました | binding を保持するキャッシュのメモリ使用量のしきい値を設定します。デフォルト値は67108864 (64 MiB)です。 |
tidb_placement_mode | 新しく追加されました | DDLステートメントがSQLでの配置ルールで指定された配置ルールを無視するかどうかを制御します。デフォルト値はstrict です。これは、DDLステートメントが配置ルールを無視しないことを意味します。 |
tidb_rc_read_check_ts | 新しく追加されました | off です。tidb_rc_read_check_ts がオンになっている場合、レプリカ読み取りを使用できない可能性があります。両方の変数を同時にオンにしないでください。 |
tidb_sysdate_is_now | 新しく追加されました | SYSDATE 関数をNOW 関数に置き換えることができるかどうかを制御します。この構成アイテムには、MySQLオプションsysdate-is-now と同じ効果があります。デフォルト値はOFF です。 |
tidb_table_cache_lease | 新しく追加されました | テーブルキャッシュのリース時間を秒単位で制御します。デフォルト値は3 です。 |
tidb_top_sql_max_meta_count | 新しく追加されました | 1分あたりTop SQLずつ収集されるSQLステートメントタイプの最大数を制御します。デフォルト値は5000 です。 |
tidb_top_sql_max_time_series_count | 新しく追加されました | 負荷に最も寄与するSQLステートメント(つまり、上位N)の数を1分あたりTop SQL回記録できるかどうかを制御します。デフォルト値は100 です。 |
tidb_txn_assertion_level | 新しく追加されました | アサーションレベルを制御します。アサーションは、データとインデックス間の整合性チェックであり、書き込まれているキーがトランザクションコミットプロセスに存在するかどうかをチェックします。デフォルトでは、チェックはほとんどのチェック項目を有効にし、パフォーマンスにほとんど影響を与えません。 v6.0.0より前のバージョンからアップグレードする既存のクラスターの場合、チェックはデフォルトで無効になっています。 |
Configuration / コンフィグレーションファイルのパラメーター
Configuration / コンフィグレーションファイル | Configuration / コンフィグレーション | タイプを変更する | 説明 |
---|---|---|---|
TiDB | stmt-summary.enable stmt-summary.enable-internal-query stmt-summary.history-size stmt-summary.max-sql-length stmt-summary.max-stmt-count stmt-summary.refresh-interval | 削除されました | ステートメント要約テーブルに関連するConfiguration / コンフィグレーション。これらの構成アイテムはすべて削除されます。ステートメントサマリーテーブルを制御するには、SQL変数を使用する必要があります。 |
TiDB | new_collations_enabled_on_first_bootstrap | 修正済み | 新しい照合順序のサポートを有効にするかどうかを制御します。 v6.0以降、デフォルト値はfalse からtrue に変更されています。この構成項目は、クラスタが初めて初期化されたときにのみ有効になります。最初のブートストラップの後、この構成アイテムを使用して新しい照合順序フレームワークを有効または無効にすることはできません。 |
TiKV | backup.num-threads | 修正済み | 値の範囲が[1, CPU] に変更されます。 |
TiKV | raftstore.apply-max-batch-size | 修正済み | 最大値が10240 に変更されます。 |
TiKV | raftstore.raft-max-size-per-msg | 修正済み | 0 から0 より大きい値に変更されます。3GB に設定されています。MB からKB\|MB\|GB に変更されます。 |
TiKV | raftstore.store-max-batch-size | 修正済み | 最大値は10240 に設定されます。 |
TiKV | readpool.unified.max-thread-count | 修正済み | 調整可能範囲が[min-thread-count, MAX(4, CPU)] に変更されます。 |
TiKV | rocksdb.enable-pipelined-write | 修正済み | デフォルト値はtrue からfalse に変更されます。この構成を有効にすると、以前のパイプライン書き込みが使用されます。この構成を無効にすると、新しいパイプラインコミットメカニズムが使用されます。 |
TiKV | rocksdb.max-background-flushes | 修正済み | 3 です。2 です。 |
TiKV | rocksdb.max-background-jobs | 修正済み | 9 です。7 です。 |
TiFlash | profiles.default.dt_enable_logical_split | 修正済み | DeltaTreeStorageEngineのセグメントが論理分割を使用するかどうかを決定します。デフォルト値はtrue からfalse に変更されます。 |
TiFlash | profiles.default.enable_elastic_threadpool | 修正済み | エラスティックスレッドプールを有効にするかどうかを制御します。デフォルト値はfalse からtrue に変更されます。 |
TiFlash | storage.format_version | 修正済み | TiFlashのデータ検証機能を制御します。デフォルト値は2 から3 に変更されます。format_version が3 に設定されている場合、ハードウェア障害による誤った読み取りを回避するために、すべてのTiFlashデータの読み取り操作で整合性チェックが実行されます。新しいフォーマットのバージョンは、v5.4より前のバージョンにダウングレードできないことに注意してください。 |
TiDB | pessimistic-txn.pessimistic-auto-commit | 新しく追加されました | ペシミスティックトランザクションモードがグローバルに有効になっている場合に、自動コミットトランザクションが使用するトランザクションモードを決定します( tidb_txn_mode='pessimistic' )。 |
TiKV | pessimistic-txn.in-memory | 新しく追加されました | インメモリペシミスティックロックを有効にするかどうかを制御します。この機能を有効にすると、ペシミスティックトランザクションは、ペシミスティックロックをディスクに書き込んだり、他のレプリカに複製したりする代わりに、ペシミスティックロックを可能な限りTiKVメモリに格納します。これにより、悲観的なトランザクションのパフォーマンスが向上します。ただし、ペシミスティックロックが失われる可能性は低く、ペシミスティックトランザクションのコミットに失敗する可能性があります。デフォルト値はtrue です。 |
TiKV | quota | 新しく追加されました | フロントエンド要求が占めるリソースを制限するクォータリミッターに関連する構成アイテムを追加します。クォータリミッターは実験的機能であり、デフォルトでは無効になっています。新しいmax-delay-duration 関連の構成アイテムは、 foreground-cpu-time 、およびforeground-read-bandwidth foreground-write-bandwidth 。 |
TiFlash | profiles.default.dt_compression_method | 新しく追加されました | TiFlashの圧縮アルゴリズムを指定します。オプションの値はLZ4 、およびzstd で、すべて大文字と小文字は区別されLZ4HC ん。デフォルト値はLZ4 です。 |
TiFlash | profiles.default.dt_compression_level | 新しく追加されました | TiFlashの圧縮レベルを指定します。デフォルト値は1 です。 |
DM | loaders.<name>.import-mode | 新しく追加されました | フルインポートフェーズ中のインポートモード。 v6.0以降、DMはTiDB LightningのTiDBバックエンドモードを使用して、完全なインポートフェーズ中にデータをインポートします。以前のローダーコンポーネントは使用されなくなりました。これは内部交換であり、日常業務に明らかな影響はありません。 デフォルト値は sql に設定されています。これは、 tidb-backend モードを使用することを意味します。まれに、 tidb-backend が完全に互換性がない場合があります。このパラメーターをloader に構成することにより、ローダーモードにフォールバックできます。 |
DM | loaders.<name>.on-duplicate | 新しく追加されました | フルインポートフェーズ中に競合を解決する方法を指定します。デフォルト値はreplace です。これは、新しいデータを使用して既存のデータを置き換えることを意味します。 |
TiCDC | dial-timeout | 新しく追加されました | ダウンストリームKafkaとの接続を確立する際のタイムアウト。デフォルト値は10s です。 |
TiCDC | read-timeout | 新しく追加されました | ダウンストリームのKafkaから返される応答を取得する際のタイムアウト。デフォルト値は10s です。 |
TiCDC | write-timeout | 新しく追加されました | ダウンストリームKafkaにリクエストを送信する際のタイムアウト。デフォルト値は10s です。 |
その他
- データ配置ポリシーには、次の互換性の変更があります。
- バインディングはサポートされていません。直接配置オプションは構文から削除されます。
CREATE PLACEMENT POLICY
およびALTER PLACEMENT POLICY
ステートメントは、VOTERS
およびVOTER_CONSTRAINTS
配置オプションをサポートしなくなりました。- TiDB移行ツール(TiDB Binlog、TiCDC、およびBR)は、配置ルールと互換性があります。配置オプションは、 Binlogの特別なコメントに移動されます。
information_schema.placement_rules
システムテーブルの名前がinformation_schema.placement_policies
に変更されます。このテーブルには、配置ポリシーに関する情報のみが表示されるようになりました。placement_checks
のシステム変数はtidb_placement_mode
に置き換えられます。- TiFlashレプリカを持つテーブルに配置ルールのあるパーティションを追加することは禁止されています。
INFORMATION_SCHEMA
テーブルからTIDB_DIRECT_PLACEMENT
列を削除します。
- SQL計画管理(SPM)バインディングの
status
の値が変更されました。using
を削除します。enabled
(使用可能)を追加してusing
を置き換えます。disabled
を追加します(使用不可)。
- DMはOpenAPIインターフェースを変更します
- 内部メカニズムの変更により、タスク管理に関連するインターフェースは以前の実験的バージョンと互換性がありません。適応のために新しいDMOpenAPIドキュメントを参照する必要があります。
- DMは、完全なインポートフェーズ中に競合を解決するためにメソッドを変更します
loader.<name>.on-duplicate
つのパラメーターが追加されます。デフォルト値はreplace
です。これは、新しいデータを使用して既存のデータを置き換えることを意味します。以前の動作を維持したい場合は、値をerror
に設定できます。このパラメーターは、完全なインポートフェーズ中の動作のみを制御します。
- DMを使用するには、対応するバージョンの
dmctl
を使用する必要があります- 内部メカニズムの変更により、DMをv6.0.0にアップグレードした後、
dmctl
もv6.0.0にアップグレードする必要があります。
- 内部メカニズムの変更により、DMをv6.0.0にアップグレードした後、
- v5.4(v5.4のみ)では、TiDBは一部のnoopシステム変数に誤った値を許可します。 v6.0.0以降、TiDBはシステム変数に誤った値を設定することを許可していません。 #31538
改善点
TiDB
FLASHBACK
またはRECOVER
ステートメントを使用してテーブルを復元した後、テーブルの配置ルール設定を自動的にクリアします#31668- パフォーマンス概要ダッシュボードを追加して、一般的なクリティカルパスのコアパフォーマンスメトリックを表示し、TiDBでのメトリック分析を容易にします#31676
LOAD DATA LOCAL INFILE
ステートメント#24515でのREPLACE
キーワードの使用のサポート- Rangeパーティションテーブル#26739の組み込み
IN
式のパーティションプルーニングをサポートします。 - MPPアグリゲーションクエリで冗長になる可能性のあるExchange操作を排除することにより、クエリの効率を向上させます#31762
TRUNCATE PARTITION
ステートメントとDROP PARTITION
ステートメントでパーティション名の重複を許可することでMySQLとの互換性を向上させます#31681ADMIN SHOW DDL JOBS
ステートメント#23494の結果にCREATE_TIME
情報を表示することをサポートします。- 新しい組み込み関数をサポートする
CHARSET()
#3931 - ユーザー名によるベースラインキャプチャブロックリストのフィルタリングをサポート#32558
- ベースラインキャプチャブロックリストでのワイルドカードの使用のサポート#32714
- 現在の#26642に従って時間を表示することにより、
ADMIN SHOW DDL JOBS
およびSHOW TABLE STATUS
ステートメントの結果を最適化しtime_zone
。 DAYNAME()
およびMONTHNAME()
関数を#32594にプッシュダウンすることをサポートREGEXP
機能を#32637にプッシュダウンすることをサポートDAYOFMONTH()
およびLAST_DAY()
関数を#33012にプッシュダウンすることをサポートDAYOFWEEK()
およびDAYOFYEAR()
関数を#33130にプッシュダウンすることをサポートIS_TRUE
、およびIS_FALSE
関数のIS_TRUE_WITH_NULL
へのプッシュダウンを#33047GREATEST
およびLEAST
関数を#32787にプッシュダウンすることをサポートUnionScan
演算子#32631の実行の追跡をサポートします_tidb_rowid
列#31543を読み取るクエリに対するPointGetプランの使用のサポート- 名前を小文字の#32719に変換せずに、
EXPLAIN
ステートメントの出力に元のパーティション名を表示することをサポート - IN条件および文字列型列でのRANGECOLUMNSパーティショニングのパーティションプルーニングを有効にする#32626
- システム変数がNULLに設定されている場合、エラーメッセージを返します#32850
- 非MPPモードからブロードキャスト参加を削除する#31465
- 動的プルーニングモードでのパーティションテーブルでのMPPプランの実行のサポート#32347
- Common Table Expression(CTE)の述語のプッシュダウンをサポート#28163
Statement Summary
とCapture Plan Baselines
の構成を単純化して、グローバルベースでのみ利用できるようにします#30557- gopsutilをv3.21.12に更新して、 #31607でバイナリをビルドするときに報告されるアラームに対処します。
TiKV
- 多くのキー範囲を持つバッチのRaftstoreのサンプリング精度を向上させます#12327
- プロファイルをより簡単に識別できるように、
debug/pprof/profile
に正しい「Content-Type」を追加します#11521 - Raftstoreにハートビートがあるか、読み取り要求を処理するときに、リーダーのリース時間を無限に更新します。これにより、遅延ジッターを減らすことができます#11579
- リーダーを切り替えるときにコストが最小のストアを選択します。これにより、パフォーマンスの安定性が向上します#10602
- Raftストアをブロックすることによって引き起こされるパフォーマンスジッターを減らすために、 Raftログを非同期にフェッチします#11320
- ベクトル計算#5751で
QUARTER
関数をサポート BIT
データ型の#30738へのプッシュダウンをサポートMOD
機能とSYSDATE
機能の#11916へのプッシュダウンをサポート- ロックの解決ステップ#11993を必要とするリージョンの数を減らすことにより、TiCDCの回復時間を短縮します。
- 動的変更の#11865
raftstore.raft-max-inflight-msgs
- 動的プルーニングモード#11888を有効にするためのサポート
EXTRA_PHYSICAL_TABLE_ID_COL_ID
- バケット#11759での計算をサポート
- #11965のキーを
user-key
+memcomparable-padding
+57としてエンコードしtimestamp
- #11965の値を
user-value
+ttl
+ValueMeta
としてエンコードし、911でdelete
をエンコードしValueMeta
。 - 動的変更の#12017
raftstore.raft-max-size-per-msg
- Grafana1でのmulti- #12014のモニタリングをサポート
- リーダーシップをCDCオブザーバーに移し、レイテンシーのジッターを減らします#12111
raftstore.apply_max_batch_size
とraftstore.store_max_batch_size
の動的変更を#11982- RawKV V2は、
raw_get
つまたはraw_scan
のリクエストを受信すると最新バージョンを返します#11965 - RCCheckTS整合性読み取りをサポート#12097
- 動的変更のサポート
storage.scheduler-worker-pool-size
(スケジューラープールのスレッド数) #12067 - グローバルフォアグラウンドフローコントローラーを使用してCPUと帯域幅の使用を制御し、TiKV1のパフォーマンスの安定性を向上させ#11855
- 動的変更のサポート
readpool.unified.max-thread-count
(UnifyReadPoolのスレッド数) #11781 - TiKV内部パイプラインを使用してRocksDBパイプラインを置き換え、
rocksdb.enable-multibatch-write
パラメーター#12059を廃止します
PD
TiFlash
- TiFlashファイルの論理分割を禁止し(デフォルト値の
profiles.default.dt_enable_logical_split
からfalse
を調整します。詳細はユーザードキュメントを参照)、TiFlash列型ストレージのスペース使用効率を改善して、TiFlashに同期されたテーブルのスペース占有がスペースと同じになるようにします。 TiKVでのテーブルの占有 - 以前のクラスタ管理モジュールをTiDBに統合することにより、TiFlashのクラスタ管理とレプリカ複製メカニズムを最適化します。これにより、小さなテーブルのレプリカ作成が高速化されます#29924 。
- TiFlashファイルの論理分割を禁止し(デフォルト値の
ツール
バックアップと復元(BR)
TiCDC
TiDBデータ移行(DM)
TiDB Lightning
バグの修正
TiDB
SCHEDULE = majority_in_primary
、およびPrimaryRegion
の値が同じである場合にRegions
が配置ルールを使用してテーブルを作成できないバグを修正します#31271- インデックスルックアップ結合#30468を使用してクエリを実行するときの
invalid transaction
のエラーを修正しました - 2つ以上の特権が付与されたときに
show grants
が誤った結果を返すバグを修正します#30855 INSERT INTO t1 SET timestamp_col = DEFAULT
がデフォルトで#29926に設定されたフィールドのタイムスタンプをゼロタイムスタンプに設定するバグを修正しCURRENT_TIMESTAMP
。- 文字列タイプ#31721の最大値と最小の非null値のエンコードを回避することにより、結果の読み取り中に報告されたエラーを修正します
- エスケープ文字でデータが壊れた場合のデータの読み込みpanicを修正#31589
- 照合順序を使用する
greatest
またはleast
関数が間違った結果を取得する問題を修正します#31789 - date_add関数とdate_sub関数が誤ったデータ型を返す可能性があるバグを修正します#31809
- 挿入ステートメントを使用して仮想的に生成された列にデータを挿入するときに発生する可能性があったpanicを修正#31735
- 作成されたリストパーティションに重複する列が存在する場合にエラーが報告されないバグを修正します#31784
select for update union select
が誤ったスナップショットを使用したときに返される誤った結果を修正します#31530- 復元操作の終了後にリージョンが不均一に分散される可能性があるという潜在的な問題を修正します#31034
json
タイプ#31541のCOERCIBILITYが間違っているバグを修正します- このタイプがbuiltin- #31320を使用して処理される場合の、
json
タイプの誤った照合順序を修正します。 - TiFlashレプリカの数が#32190に設定されている場合にPDルールが削除されないバグを修正します
alter column set default
がテーブルスキーマ#31074を誤って更新する問題を修正します- TiDBの
date_format
がMySQLと互換性のない方法で'\n'
を処理する問題を修正します#32232 - 結合#31629を使用してパーティションテーブルを更新するときにエラーが発生する可能性があるバグを修正します
- 列挙値#32428のNulleq関数の誤った範囲計算結果を修正しました
upper()
およびlower()
の関数で発生する可能性のあるpanicを修正#32488- 他のタイプの列をタイムスタンプタイプの列に変更するときに発生するタイムゾーンの問題を修正します#29585
- ChunkRPCを使用してデータをエクスポートするときの#30880を修正#31981
- 動的パーティションプルーニングモード#32516でサブSELECTLIMITが期待どおりに機能しないバグを修正します。
INFORMATION_SCHEMA.COLUMNS
テーブル#32655のビットデフォルト値の誤った形式または一貫性のない形式を修正します。- サーバーの再起動後にパーティションテーブルを一覧表示するためにパーティションテーブルのプルーニングが機能しない可能性があるバグを修正します#32416
SET timestamp
が実行された後にadd column
が間違ったデフォルトのタイムスタンプを使用する可能性があるバグを修正します#31968- MySQL5.5または5.6クライアントからTiDBパスワードなしアカウントへの接続が失敗する可能性があるバグを修正します#32334
- トランザクション#29851で動的モードでパーティションテーブルを読み取るときの誤った結果を修正
- TiDBが重複タスクを#32814にディスパッチする可能性があるバグを修正
timdiff
関数の入力にミリ秒#31680が含まれている場合に返される誤った結果を修正- パーティションを明示的に読み取り、IndexJoinプランを使用する場合の誤った結果を修正する#32007
- 列タイプを同時に変更すると、列の名前変更が失敗するバグを修正します#31075
- TiFlashプランの正味コストを計算する式がTiKVプランと一致しないバグを修正します#30103
KILL TIDB
がアイドル状態の接続ですぐに有効にならないバグを修正します#24031- 生成された列を含むテーブルをクエリするときに発生する可能性のある誤った結果を修正する#33038
left join
を使用して複数のテーブルのデータを削除した誤った結果を#31321- オーバーフロー#31868の場合に
SUBTIME
関数が間違った結果を返すバグを修正しました - 集計クエリに
having
条件#33166が含まれている場合、selection
演算子をプッシュダウンできないバグを修正します。 - クエリがエラーを報告したときにCTEがブロックされる可能性があるバグを修正します#31302
- 非厳密モードでテーブルを作成するときにvarbinary列またはvarchar列の長さが長すぎると、エラーが発生する可能性があるバグを修正します#30328
- フォロワーが指定されていない場合の
information_schema.placement_policies
のフォロワー数の誤りを修正#31702 - インデックスが作成されるときにTiDBが列プレフィックスの長さを0として指定できる問題を修正します#31972
- TiDBがスペース#31535で終わるパーティション名を許可する問題を修正します
RENAME TABLE
ステートメント#29893のエラーメッセージを修正します。
TiKV
- ピアステータスが
Applying
のときにスナップショットファイルを削除することによって引き起こされるpanicの問題を修正し#11746 - フロー制御が有効で、
level0_slowdown_trigger
が明示的に設定されている場合のQPSドロップの問題を修正します#11424 - ピアを破棄すると待ち時間が長くなる可能性があるという問題を修正します#10210
- GCワーカーがビジー状態のときにTiKVがデータの範囲を削除できない(つまり、内部コマンド
unsafe_destroy_range
が実行される)バグを修正します#11903 - 一部のコーナーケースで
StoreMeta
のデータが誤って削除されたときにTiKVがパニックになるバグを修正します#11852 - ARMプラットフォームでプロファイリングを実行するときにTiKVがパニックになるバグを修正します#10658
- TiKVが2年以上実行されているとpanicになる可能性があるバグを修正します#11940
- SSE命令セット#12034の欠落によって引き起こされるARM64アーキテクチャのコンパイルの問題を修正します
- 初期化されていないレプリカを削除すると、古いレプリカが再作成される可能性がある問題を修正します#10533
- 古いメッセージが原因でTiKVがpanicになるバグを修正します#12023
- TsSet変換で未定義動作(UB)が発生する可能性がある問題を修正します#12070
- レプリカの読み取りが線形化可能性に違反する可能性があるバグを修正します#12109
- TiKVが#9765でプロファイリングを実行するときに発生する可能性のあるpanicの問題を修正します。
- 文字列の一致が正しくないためにtikv-ctlが誤った結果を返す問題を修正します#12329
- メモリメトリックのオーバーフローによって引き起こされる断続的なパケット損失とメモリ不足(OOM)の問題を修正します#12160
- TiKV1を終了するときに誤ってTiKVパニックを報告する潜在的な問題を修正し#12231
- ピアステータスが
PD
TiFlash
- メモリ制限が有効になっているときに発生するTiFlashpanicの問題を修正します#3902
- 期限切れのデータがゆっくりとリサイクルされる問題を修正します#4146
Snapshot
が複数のDDL操作と同時に適用された場合のTiFlashpanicの潜在的な問題を修正します#4072- 読み取りワークロードが重い場合に列を追加した後の潜在的なクエリエラーを修正する#3967
- 負の引数を持つ
SQRT
関数が#3598ではなくNaN
を返す問題を修正しNull
。 INT
からDECIMAL
をキャストするとオーバーフロー#3920が発生する可能性がある問題を修正します- 複数値式#4016で
IN
の結果が正しくない問題を修正します - 日付形式が
'\n'
を無効な区切り文字#4036として識別する問題を修正します - 同時実行性の高いシナリオでは、学習者の読み取りプロセスに時間がかかりすぎるという問題を修正します#3555
DATETIME
から#4151をキャストするときに発生する間違った結果を修正しDECIMAL
- クエリがキャンセルされたときに発生するメモリリークの問題を修正します#4098
- エラスティックスレッドプールを有効にするとメモリリークが発生する可能性があるバグを修正#4098
- ローカルトンネルが有効になっている場合、キャンセルされたMPPクエリによってタスクが永久にハングする可能性があるバグを修正します#4229
- HashJoinビルド側の失敗により、MPPクエリが永久にハングする可能性があるバグを修正します#4195
- MPPタスクがスレッドを永久にリークする可能性があるバグを修正します#4238
ツール
バックアップと復元(BR)
TiCDC
batch-replace-enable
が無効になっている場合にMySQLシンクが重複したreplace
のSQLステートメントを生成するバグを修正します#4501- PDリーダーが殺されたときにTiCDCノードが異常に終了するバグを修正します#4248
- 一部のMySQLバージョン#4504のエラー
Unknown system variable 'transaction_isolation'
を修正します Canal-JSON
が35を誤って処理したときに発生する可能性があるstring
panicの問題を修正し#4635- シーケンスが誤って複製される場合があるバグを修正します#4563
Canal-JSON
がnil3をサポートしていないために発生する可能性があるTiCDCpanicの問題を修正し#4736- タイプ
Enum/Set
およびTinyText/MediumText/Text/LongText
のavroコーデックの誤ったデータマッピングを修正します#4454 - Avroが
NOT NULL
列をnull許容フィールドに変換するバグを修正します#4818 - TiCDCが終了できない問題を修正します#4699
TiDBデータ移行(DM)
- シンカーメトリックがステータス#4281をクエリするときにのみ更新される問題を修正します
- セーフモードでの更新ステートメントの実行エラーがDMワーカーのpanicを引き起こす可能性がある問題を修正します#4317
- 長い#4637がエラーを報告するバグを修正します
Column length too big
- 複数のDMワーカーが同じアップストリームからデータを書き込むことによって引き起こされる競合の問題を修正します#3737
- 何百もの「チェックポイントに変更がない、同期フラッシュチェックポイントをスキップする」がログに出力され、レプリケーションが非常に遅いという問題を修正します#4619
- シャードをマージし、ペシミスティックモードでアップストリームからインクリメンタルデータを複製するときのDML損失の問題を修正します#5002
TiDB Lightning
Dumpling
TiDB Binlog
- 大規模なアップストリーム書き込みトランザクションが#1136に複製されるときに、 Binlogがスキップされる可能性がある問題を修正します。