TiDB3.0ベータリリースノート
2019年1月19日、TiDB3.0ベータ版がリリースされました。対応するTiDBAnsible3.0ベータ版もリリースされています。 TiDB 3.0 Betaは、安定性、SQLオプティマイザー、統計、および実行エンジンに重点を置いたTiDB2.1に基づいて構築されています。
TiDB
- 新機能
- サポートビュー
- ウィンドウ関数のサポート
- 範囲分割をサポート
- ハッシュ分割をサポートする
- SQLオプティマイザー
- #7676の最適化ルールを再サポートし
AggregationElimination
NOT EXISTS
のサブクエリを最適化し、それをアンチセミジョイン#7842に変換します- 新しいCascadesオプティマイザーをサポートするために
tidb_enable_cascades_planner
の変数を追加します。現在、Cascadesオプティマイザはまだ完全には実装されておらず、デフォルトでオフになっています#7879 - トランザクションでのインデックス結合の使用のサポート#7877
- 外部結合での定数伝播を最適化して、結合結果の外部テーブルに関連するフィルタリング条件を外部結合を介して外部テーブルにプッシュダウンできるようにします。これにより、外部結合の無駄な計算が減り、実行パフォーマンスが向上します#7794 。
- 冗長な
Project
演算子を避けるために、射影除去の最適化ルールを集計除去後の位置に調整します#7909 IFNULL
関数を最適化し、入力パラメーターにNULL以外の属性がある場合はこの関数を削除します#7924- 全表スキャンを回避し、クラスタのストレスを軽減するための
_tidb_rowid
の構築クエリのサポート範囲#8047 IN
のサブクエリを最適化して、集計後に内部結合を実行し、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
- RangePartition1のPartitionPruning最適化ルールを改善し#8885
- #7676の最適化ルールを再サポートし
- SQLエグゼキュータ
- 空の
ON
条件#9037をサポートするようにMerge Join
演算子を最適化します - ログを最適化し、
EXECUTE
ステートメントの実行時に使用されるユーザー変数を出力します#7684 - ログを最適化して、
COMMIT
ステートメントの低速クエリ情報を出力します#7951 - SQLチューニングプロセスを容易にする
EXPLAIN ANALYZE
つの機能をサポートする#7827 - 多くの列を持つワイドテーブルの書き込みパフォーマンスを最適化する#7935
- #8242
admin show next_row_id
tidb_init_chunk_size
変数を追加して、実行エンジン#8480が使用する初期チャンクのサイズを制御します。shard_row_id_bits
を改善し、自動インクリメント#8936をクロスチェックします
- 空の
Prepare
ステートメント- 異なるユーザー変数が入力されたときにクエリプランが正しいことを保証するために、サブクエリを含む
Prepare
ステートメントをクエリプランキャッシュに追加することを禁止します#8064 - クエリプランキャッシュを最適化して、ステートメントに非決定論的関数が含まれている場合にプランをキャッシュできるようにします#8105
- クエリプランのキャッシュを最適化して、
DELETE
/UPDATE
/INSERT
のクエリプランをキャッシュできるようにします#8107 - クエリプランキャッシュを最適化して、
DEALLOCATE
ステートメントを実行するときに対応するプランを削除します#8332 - クエリプランのキャッシュを最適化して、メモリ使用量を制限することにより、あまりにも多くのプランをキャッシュすることによって引き起こされるTiDBOOMの問題を回避します#8339
Prepare
ステートメントを最適化してORDER BY
節GROUP BY
の?
#8206ホルダーの使用をサポートしLIMIT
- 異なるユーザー変数が入力されたときにクエリプランが正しいことを保証するために、サブクエリを含む
- 権限管理
- サーバ
- 互換性
- DDL
ツール
PD
- リージョンメタデータを個別に保存するには、
RegionStorage
を追加します#1237 - シャッフルホットリージョンスケジューラを追加する#1361
- スケジューリングパラメータ関連のメトリックを追加する#1406
- クラスタラベル関連のメトリックを追加する#1402
- インポートするデータシミュレーターを追加する#1263
- リーダー選出に関する
Watch
の問題を修正#1396
TiKV
- 分散#3179をサポート
- 書き込みストール#3606を回避するために、スナップショットを適用する前にRocksDBレベル0ファイルを確認してください
- リバース
raw_scan
およびraw_batch_scan
を#3742 - HTTPを使用した監視情報の取得のサポート#3855
- DSTをより適切にサポートする#3786
- バッチ#3931でのRaftメッセージの送受信をサポート
- 新しいストレージエンジン#3985を発表
- gRPCをv1.17.2にアップグレードする#4023
- バッチ#4043でのクライアント要求の受信と応答の送信をサポートします
- マルチスレッド適用#4044をサポート
- マルチスレッド#4066をサポート