TiDB2.1GAリリースノート
2018年11月30日、TiDB2.1GAがリリースされました。このリリースの次の更新を参照してください。このリリースでは、TiDB 2.0と比較して、安定性、パフォーマンス、互換性、および使いやすさが大幅に向上しています。
TiDB
SQLオプティマイザー
Index Join
の選択範囲を最適化して、実行パフォーマンスを向上させますIndex Join
の外部テーブルの選択を最適化し、行カウントの推定値が小さいテーブルを外部テーブルとして使用します結合ヒント
TIDB_SMJ
を最適化して、適切なインデックスが利用できない場合でもマージ結合を使用できるようにします結合ヒント
TIDB_INLJ
を最適化して、結合する内部テーブルを指定します相関サブクエリを最適化し、フィルタを押し下げ、インデックスの選択範囲を拡張して、一部のクエリの効率を桁違いに向上させます
UPDATE
およびDELETE
ステートメントでのインデックスヒントと結合ヒントの使用のサポートより多くの機能の
CEIL
IS FALSE
をIS TRUE
FLOOR
ABS
IF
およびIFNULL
の組み込み関数の定数畳み込みアルゴリズムを最適化しますEXPLAIN
ステートメントの出力を最適化し、階層構造を使用して演算子間の関係を示します
SQLエグゼキュータ
すべての集計関数をリファクタリングし、
Stream
およびHash
の集計演算子の実行効率を向上させます並列
Hash Aggregate
演算子を実装し、一部のシナリオでコンピューティングパフォーマンスを350%向上させます並列
Project
演算子を実装し、一部のシナリオでパフォーマンスを74%向上させます実行性能を向上させるために、
Hash Join
の内部テーブルと外部テーブルのデータを同時に読み取ります。REPLACE INTO
ステートメントの実行速度を最適化し、パフォーマンスをほぼ10倍向上させます時間データ型のメモリ使用量を最適化し、時間データ型のメモリ使用量を50%削減します
ポイント選択のパフォーマンスを最適化し、Sysbenchのポイント選択効率の結果を60%向上させます
ワイドテーブルの挿入または更新時のTiDBのパフォーマンスを20倍向上させます
構成ファイル内の単一ステートメントのメモリー上限の構成をサポート
ハッシュ結合の実行を最適化します。結合タイプが内部結合または半結合であり、内部テーブルが空の場合、外部テーブルからデータを読み取らずに結果を返します。
EXPLAIN ANALYZE
ステートメントを使用して、実行時間や各演算子の返された行数などの実行時統計を確認することをサポートします
統計
1日の特定の期間にのみ自動ANALYZE統計を有効にすることをサポート
クエリのフィードバックに従ってテーブル統計を自動的に更新することをサポートします
ANALYZE TABLE WITH BUCKETS
ステートメントを使用したヒストグラム内のバケット数の構成をサポート等式クエリと範囲クエリの混合クエリのヒストグラムを使用して、行数推定アルゴリズムを最適化します
式
次の組み込み関数をサポートします。
json_contains
json_contains_path
encode/decode
サーバ
競合するトランザクションのパフォーマンスを最適化するために、tidb-serverインスタンス内でローカルに競合するトランザクションのキューイングをサポートする
サーバー側カーソルのサポート
HTTP APIを追加します
TiKVクラスタのテーブル領域の分布を分散させる
general log
を開くかどうかを制御しますオンラインでのログレベルの変更をサポート
TiDBクラスタ情報を確認してください
DDL
Add indexステートメントと他のステートメントの並列実行をサポートして、時間のかかるAddindex操作が他の操作をブロックしないようにします。
ADD INDEX
の実行速度を最適化し、一部のシナリオでは大幅に改善しますTiDBが
DDL Owner
であるかどうかの決定を容易にするために、select tidb_is_ddl_owner()
ステートメントをサポートしますALTER TABLE FORCE
構文をサポートするALTER TABLE RENAME KEY TO
構文をサポートするadmin show ddl jobs
の出力情報にテーブル名とデータベース名を追加します。ddl/owner/resign
HTTPインターフェースを使用してDDL所有者を解放し、新しいDDL所有者の選出を開始することをサポートします
互換性
より多くのMySQL構文をサポートする
BIT
集計関数がALL
パラメーターをサポートするようにしますSHOW PRIVILEGES
のステートメントをサポートするLOAD DATA
ステートメントでCHARACTER SET
構文をサポートするCREATE USER
ステートメントでIDENTIFIED WITH
構文をサポートするLOAD DATA IGNORE LINES
のステートメントをサポートするShow ProcessList
ステートメントは、より正確な情報を返します
配置ドライバー(PD)
可用性を最適化する
バージョン管理メカニズムを導入し、互換性のあるクラスタのローリング更新をサポートします
ネットワーク分離後にネットワークが回復したときにリーダーが再選されるのを防ぐために、PDノード間で
Raft PreVote
有効にするデフォルトで
raft learner
を有効にすると、スケジューリング中のマシン障害によってデータが利用できなくなるリスクが低くなります。TSOの割り当ては、システムクロックが逆方向になることによる影響を受けなくなりました。
Region merge
つの機能をサポートして、メタデータによってもたらされるオーバーヘッドを削減します
スケジューラーを最適化する
ダウンストアの処理を最適化して、レプリカの作成を高速化します
ホットスポットスケジューラを最適化して、トラフィック統計情報がジッターするときの適応性を向上させます
コーディネーターの開始を最適化して、PDの再起動によって引き起こされる不要なスケジューリングを減らします
BalanceSchedulerが小さなリージョンを頻繁にスケジュールする問題を最適化します
リージョンマージを最適化して、リージョン内の行数を検討します
PDシミュレーターを改善して、スケジューリングシナリオをシミュレートします
APIおよび操作ツール
TiDB reverse scan
機能をサポートするためにGetPrevRegion
インターフェースを追加しますBatchSplitRegion
インターフェースを追加すると、TiKVリージョンの分割が高速化されますTiDBで分散GCをサポートするために
GCSafePoint
インターフェースを追加しますTiDBで分散GCをサポートするには、
GetAllStores
インターフェースを追加します
pd-ctlは以下をサポートします:
- pd-recoverは
max-replica
パラメータを提供する必要はありません
指標
Filter
の関連メトリックを追加しますetcdRaftステートマシンに関するメトリックを追加します
パフォーマンス
リージョンハートビートのパフォーマンスを最適化して、ハートビートによってもたらされるメモリオーバーヘッドを削減します
リージョンツリーのパフォーマンスを最適化する
ホットスポット統計の計算のパフォーマンスを最適化する
TiKV
コプロセッサー
組み込み関数を追加する
時間関数の解析の問題とタイムゾーンに関連する問題を修正します
プッシュダウンアグリゲーションコンピューティングのメモリ使用量を最適化する
取引
MVCCの読み取りロジックとメモリ使用量を最適化して、スキャン操作のパフォーマンスを向上させます。全表スキャンのパフォーマンスは、TiDB2.0のパフォーマンスの1倍です。
連続ロールバックレコードを折りたたんで、読み取りパフォーマンスを確保します
UnsafeDestroyRange
APIを追加して、ドロップするテーブル/インデックスのスペースの収集をサポートします書き込みへの影響を減らすためにGCモジュールを分離します
kv_scan
コマンドにupper bound
サポートを追加します
ラフトストア
RocksDBのストールを回避するために、スナップショットの書き込みプロセスを改善します
I / Oオーバーヘッドを削減するために、統計に従って
Region Split
をサポートしますキーの数に応じて
Region Split
をサポートし、インデックススキャンの同時実行性を向上させますラフトメッセージプロセスを改善して、
Region Split
による不要な遅延を回避しますネットワーク分離がサービスに与える影響を減らすために、デフォルトで
PreVote
機能を有効にします
ストレージエンジン
RocksDBの
CompactFiles
のバグを修正し、Lightningを使用してデータをインポートする際の影響を軽減しますRocksDBをv5.15にアップグレードして、スナップショットファイルの破損の問題を修正します
フラッシュが書き込みをブロックする可能性がある問題を回避するために
IngestExternalFile
を改善します
tikv-ctl
compact
コマンドは、最下位レベルでデータを圧縮するかどうかの指定をサポートします
ツール
大量のデータの高速フルインポート: TiDB Lightning
新しいTiDB Binlogをサポートする
アップグレードの警告
- TiDB 2.1は、新しいストレージエンジンの採用により、v2.0.x以前へのダウングレードをサポートしていません。
並列DDLはTiDB2.1で有効になっているため、2.0.1より前のバージョンのTiDBを持つクラスターは、ローリングアップデートを使用して2.1にアップグレードできません。次の2つのオプションのいずれかを選択できます。
- クラスタを停止し、2.1に直接アップグレードします
- 2.0.1以降の2.0.xバージョンにロールアップデートしてから、2.1バージョンにロールアップデートします。
- TiDB2.0.6以前からTiDB2.1にアップグレードする場合、DDL操作はアップグレードプロセスを遅くするため、進行中のDDL操作、特に時間のかかる
Add Index
操作があるかどうかを確認します。進行中のDDL操作がある場合は、DDL操作が終了するのを待ってから、更新をロールします。