TiDB 3.0 ベータ版リリースノート
2019年1月19日、TiDB 3.0 Betaがリリースされました。対応するTiDB Ansible 3.0 Betaもリリースされました。TiDB 3.0 BetaはTiDB 2.1をベースに構築されており、安定性、SQLオプティマイザー、統計、実行エンジンに重点が置かれています。
TiDB
- 新機能
- サポートビュー
- ウィンドウ関数のサポート
- 範囲分割のサポート
- ハッシュパーティショニングをサポート
- 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
TiKV
- 分散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サポート