TiDB 3.0 ベータ リリース ノート
2019 年 1 月 19 日に、TiDB 3.0 ベータ版がリリースされました。対応する TiDB Ansible 3.0 ベータ版もリリースされました。TiDB 3.0 ベータ版は、安定性、SQL オプティマイザー、統計、実行エンジンに重点を置いて TiDB 2.1 をベースに構築されています。
ティビ
- 新機能
- サポートビュー
- ウィンドウ関数のサポート
- 範囲分割のサポート
- ハッシュパーティションをサポート
- SQL オプティマイザー
AggregationElimination
#7676の最適化ルールを再サポートNOT EXISTS
サブクエリを最適化し、Anti Semi Join #7842に変換する- 新しい Cascades オプティマイザーをサポートするために
tidb_enable_cascades_planner
変数を追加します。現在、Cascades オプティマイザーはまだ完全に実装されておらず、デフォルトではオフになっています#7879 - トランザクション#7877でのインデックス結合の使用をサポート
- 外部結合の定数伝播を最適化し、結合結果の外部テーブルに関連するフィルタリング条件を外部結合を介して外部テーブルにプッシュダウンできるようにすることで、外部結合の無駄な計算を減らし、実行パフォーマンスを向上させます#7794
- 投影除去の最適化ルールを集計除去の後の位置に調整し、冗長な
Project
演算子#7909回避する IFNULL
関数を最適化し、入力パラメータに NULL 以外の属性#7924がある場合はこの関数を削除します。_tidb_rowid
構築クエリの範囲をサポートし、テーブル全体のスキャンを回避してクラスターのストレスを軽減します#8047IN
サブクエリを最適化して集計後に内部結合を実行し、この最適化ルールを有効にしてデフォルトで開くかどうかを制御するtidb_opt_insubq_to_join_and_agg
変数を追加します#7531DO
文#8343でのサブクエリの使用をサポート- 不要なテーブルスキャンと結合操作を削減し、実行パフォーマンスを向上させるために、外部結合除去の最適化ルールを追加します#8021
TIDB_INLJ
オプティマイザのヒント動作を変更すると、オプティマイザはヒントで指定されたテーブルをインデックス結合#8243の内部テーブルとして使用します。Prepare
文の実行計画キャッシュが有効になったときに使用できるように、PointGet
広い範囲で使用する#8108- 複数のテーブルを結合する際の結合順序の選択を最適化するために貪欲アルゴリズム
Join Reorder
を導入する#8394 - サポートビュー#8757
- サポートウィンドウ機能#8630
TIDB_INLJ
が有効でない場合はクライアントに警告を返し、ユーザビリティを向上させる#9037- フィルタリング条件とテーブル統計に基づいてフィルタリングされたデータの統計を推測する機能をサポート#7921
- 範囲パーティション#8885のパーティション プルーニング最適化ルールを改善する
- SQL エグゼキュータ
- 空の
ON
条件#9037サポートするためにMerge Join
演算子を最適化する - ログを最適化し、
EXECUTE
ステートメント#7684実行するときに使用されるユーザー変数を出力します。 COMMIT
ステートメント#7951の遅いクエリ情報を出力するためにログを最適化します。- SQLチューニングプロセスを容易にする
EXPLAIN ANALYZE
機能をサポートする#7827 - 多数の列を持つ幅の広いテーブルの書き込みパフォーマンスを最適化#7935
- サポート
admin show next_row_id
#8242 - 実行エンジン#8480で使用される初期Chunkのサイズを制御するための
tidb_init_chunk_size
変数を追加します。 shard_row_id_bits
改善し、自動増分ID #8936をクロスチェックする
- 空の
Prepare
ステートメント- 異なるユーザー変数が入力されたときにクエリプランが正しいことを保証するために、サブクエリを含む
Prepare
のステートメントをクエリプランキャッシュに追加することを禁止します#8064 - クエリプランキャッシュを最適化して、ステートメントに非決定的関数が含まれている場合にプランがキャッシュされることを保証します#8105
- クエリプランキャッシュを最適化して、
DELETE
/UPDATE
/INSERT
のクエリプランがキャッシュされることを保証する#8107 - クエリプランキャッシュを最適化して、
DEALLOCATE
文#8332を実行するときに対応するプランを削除します。 - メモリ使用量を制限して、クエリプランキャッシュを最適化し、プランを過剰にキャッシュすることで発生する TiDB OOM の問題を回避します#8339
Prepare
文を最適化して、ORDER BY
/GROUP BY
/LIMIT
節#8206の?
プレースホルダーの使用をサポートする
- 異なるユーザー変数が入力されたときにクエリプランが正しいことを保証するために、サブクエリを含む
- 権限管理
- サーバ
- 互換性
- DDL
ツール
PD
- リージョンメタデータを個別に格納するには
RegionStorage
追加します#1237 - シャッフルホットリージョンスケジューラ#1361を追加
- スケジュールパラメータ関連のメトリック#1406を追加する
- クラスターラベル関連のメトリック#1402を追加する
- インポートデータシミュレータ#1263を追加
- リーダー選挙に関する
Watch
問題を修正#1396
ティクヴ
- 分散GC #3179をサポート
- 書き込みストール#3606を回避するために、スナップショットを適用する前に RocksDB レベル 0 ファイルをチェックします。
- リバース
raw_scan
とraw_batch_scan
#3742をサポート - HTTPを使用した監視情報の取得をサポート#3855
- DST をより良くサポート#3786
- バッチ#3931でのRaftメッセージの受信と送信をサポート
- 新しいstorageエンジン Titan #3985を導入
- gRPCをv1.17.2にアップグレード#4023
- バッチ#4043でクライアント要求を受信して応答を送信することをサポートします。
- マルチスレッド対応#4044
- マルチスレッドRaftstore #4066をサポート