TiDB 3.0 ベータ版リリースノート
2019 年 1 月 19 日に、TiDB 3.0 ベータ版がリリースされました。対応する TiDB Ansible 3.0 Beta もリリースされています。 TiDB 3.0 ベータ版は、安定性、SQL オプティマイザー、統計、実行エンジンに重点を置いて TiDB 2.1 をベースに構築されています。
TiDB
- 新機能
- サポートビュー
- サポートウィンドウの機能
- 範囲分割のサポート
- ハッシュパーティショニングのサポート
- SQLオプティマイザー
AggregationElimination
#7676の最適化ルールを再サポートします。NOT EXISTS
サブクエリを最適化し、Anti Semi Join #7842に変換します。- 新しい Cascades オプティマイザーをサポートするには、
tidb_enable_cascades_planner
変数を追加します。現在、カスケード オプティマイザーはまだ完全には実装されておらず、デフォルトではオフになっています#7879 - トランザクションでのインデックス結合の使用のサポート#7877
- 外部結合での定数伝播を最適化することで、結合結果の外部テーブルに関連するフィルター条件を外部結合を通じて外部テーブルにプッシュダウンできるようになり、外部結合の無駄な計算が削減され、実行パフォーマンスが向上します#7794
- 冗長な
Project
演算子#7909を避けるために、射影消去の最適化ルールを集計消去後の位置に調整します。 IFNULL
関数を最適化し、入力パラメータが非 NULL 属性を持つ場合はこの関数を削除します#7924_tidb_rowid
構築クエリのサポート範囲。テーブル全体のスキャンを回避し、クラスターのストレスを軽減します。 #8047- 集計後に内部結合を実行するように
IN
サブクエリを最適化し、この最適化ルールを有効にしてデフォルトで開くかどうかを制御するtidb_opt_insubq_to_join_and_agg
変数を追加します#7531 DO
ステートメントでのサブクエリの使用のサポート#8343- 外部結合除去の最適化ルールを追加して、不要なテーブル スキャンと結合操作を削減し、実行パフォーマンスを向上させます#8021
TIDB_INLJ
オプティマイザーのヒント動作を変更すると、オプティマイザーはヒントで指定されたテーブルをインデックス結合#8243内部テーブルとして使用します。Prepare
ステートメントの実行プラン キャッシュが有効になるときに使用できるように、PointGet
広範囲で使用します#8108- 貪欲
Join Reorder
アルゴリズムを導入して、複数のテーブルを結合する際の結合順序の選択を最適化します#8394 - サポートビュー#8757
- サポート窓口機能#8630
TIDB_INLJ
が有効でない場合にクライアントに警告を返し、使いやすさを向上させます#9037- フィルタリング条件とテーブル統計に基づいてフィルタリングされたデータの統計を推定するサポート#7921
- Range Partition #8885のPartition Pruning最適化ルールを改善
- SQLエグゼキュータ
- 空の
ON
条件をサポートするようにMerge Join
演算子を最適化します#9037 - ログを最適化し、ステートメント
EXECUTE
の実行時に使用されたユーザー変数を出力します#7684 COMMIT
ステートメント#7951の遅いクエリ情報を出力するようにログを最適化します。- SQL チューニング プロセスを容易にする
EXPLAIN ANALYZE
機能のサポート#7827 - 多くの列を含む幅の広いテーブルの書き込みパフォーマンスを最適化する#7935
- サポート
admin show next_row_id
#8242 tidb_init_chunk_size
変数を追加して、実行エンジンによって使用される初期Chunkのサイズを制御します#8480shard_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
ツール
- TiDB Lightning
PD
- リージョンメタデータを個別に保存するには
RegionStorage
を追加します#1237 - シャッフル ホットリージョンスケジューラ#1361を追加
- スケジューリングパラメータ関連のメトリクスを追加#1406
- クラスターラベル関連メトリックの追加#1402
- インポートデータシミュレータ#1263の追加
- リーダー選出#1396に関する
Watch
問題を修正
TiKV
- 分散 GC #3179をサポート
- Write Stall #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をサポート