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の最適化ルールを再サポート #7676NOT 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オプティマイザのヒントの動作を変更すると、オプティマイザはヒントで指定されたテーブルをインデックス結合内部テーブルとして使用します。 #8243Prepare文の実行プランキャッシュが有効になったときに使用できるように、PointGet広い範囲で使用します#8108- 複数のテーブルを結合する際の結合順序の選択を最適化するために貪欲アルゴリズム
Join Reorderを導入する#8394 - サポートビュー#8757
- サポートウィンドウ機能#8630
TIDB_INLJ有効になっていない場合にクライアントに警告を返し、ユーザビリティを向上させる#9037- フィルタリング条件とテーブル統計に基づいてフィルタリングされたデータの統計を推測する機能をサポート#7921
- レンジパーティションのパーティションプルーニング最適化ルールの改善 #8885
- SQLエグゼキュータ
- 空の
ON条件サポートするためにMerge Join演算子を最適化する #9037 - ログを最適化し、
EXECUTE文を実行するときに使用されるユーザー変数を出力します。 #7684 COMMIT文スロークエリ情報を出力するためにログを最適化します #7951- SQLチューニングプロセスを容易にする
EXPLAIN ANALYZE機能をサポートする#7827 - 多数の列を持つ幅の広いテーブルの書き込みパフォーマンスを最適化します#7935
- サポート
admin show next_row_id#8242 - 実行エンジンで使用される初期Chunkのサイズを制御するための
tidb_init_chunk_size変数を追加します。 #8480 shard_row_id_bitsを改善し、AUTO_INCREMENT 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
- 書き込みストールを回避するために、スナップショットを適用する前に RocksDB レベル 0 ファイルをチェックします。 #3606
- リバース
raw_scanとraw_batch_scanサポート #3742 - HTTPを使用した監視情報の取得をサポート#3855
- DST をより良くサポート#3786
- バッチでのRaftメッセージの受信と送信をサポート #3931
- 新しいストレージエンジン Titan を導入 #3985
- gRPCをv1.17.2にアップグレード#4023
- バッチでクライアント要求を受信し、応答を送信することをサポートします。 #4043
- マルチスレッド対応適用 #4044
- マルチスレッドRaftstore サポート #4066