TiDB2.1GAリリースノート
2018年11月30日、TiDB2.1GAがリリースされました。このリリースの次の更新を参照してください。このリリースでは、TiDB 2.0と比較して、安定性、パフォーマンス、互換性、および使いやすさが大幅に向上しています。
TiDB
SQLオプティマイザー
Index Joinの選択範囲を最適化して、実行パフォーマンスを向上させますIndex Joinの外部テーブルの選択を最適化し、行カウントの推定値が小さいテーブルを外部テーブルとして使用します結合ヒント
TIDB_SMJを最適化して、適切なインデックスが利用できない場合でもマージ結合を使用できるようにします結合ヒント
TIDB_INLJを最適化して、結合する内部テーブルを指定します相関サブクエリを最適化し、フィルタを押し下げ、インデックスの選択範囲を拡張して、一部のクエリの効率を桁違いに向上させます
UPDATEおよびDELETEステートメントでのインデックスヒントと結合ヒントの使用のサポートより多くの機能の
CEILIS FALSEをIS TRUEFLOORABSIFおよび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_containsjson_contains_pathencode/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/resignHTTPインターフェースを使用して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倍です。
連続ロールバックレコードを折りたたんで、読み取りパフォーマンスを確保します
UnsafeDestroyRangeAPIを追加して、ドロップするテーブル/インデックスのスペースの収集をサポートします書き込みへの影響を減らすために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操作が終了するのを待ってから、更新をロールします。