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