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変数を追加して、この最適化ルールを有効にするかどうかを制御し、デフォルトで開く#7531
    • DOステートメントでのサブクエリの使用のサポート#8343
    • 外部結合除去の最適化ルールを追加して、不要なテーブル スキャンと結合操作を削減し、実行パフォーマンスを向上させます#8021
    • TIDB_INLJオプティマイザの Hint の動作を変更すると、オプティマイザは Hint で指定されたテーブルを Index Join #8243の内部テーブルとして使用します
    • PointGetステートメントの実行計画キャッシュが有効になったときに使用できるように、広い範囲で 1 を使用し#8108 Prepare
    • 複数のテーブルを結合する際の結合順序の選択を最適化するために貪欲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
  • 権限管理
    • ANALYZEステートメント#8486の特権チェックを追加します。
    • USEステートメント#8414の特権チェックを追加します。
    • SET GLOBALステートメント#8837の特権チェックを追加します。
    • SHOW PROCESSLISTステートメント#7858の特権チェックを追加します。
  • サーバ
    • Trace機能#9029をサポート
    • プラグイン フレームワークのサポート#8788
    • unix_socketと TCP を同時に使用してデータベースに接続することをサポート#8836
    • interactive_timeoutシステム変数#8573をサポート
    • wait_timeoutシステム変数#8346をサポート
    • tidb_batch_commit変数#8293を使用して、ステートメントの数に基づいてトランザクションを複数のトランザクションに分割するサポート
    • スローログをチェックするADMIN SHOW SLOWステートメントを使用したサポート#7785
  • 互換性
    • ALLOW_INVALID_DATES SQL モード#9027をサポート
    • CSVファイルのフォールトトレランスの向上LoadData #9005
    • MySQL 320 ハンドシェイク プロトコルのサポート#8812
    • 自動インクリメント列#8181として符号なしbigint列を使用するサポート
    • SHOW CREATE DATABASE IF NOT EXISTS構文#8926をサポート
    • フィルタリング条件にユーザー変数が含まれている場合、述語プッシュダウン操作を放棄して、ユーザー変数を使用してウィンドウ関数の動作をモックする MySQL の動作との互換性を向上させます#8412
  • DDL
    • 誤って削除されたテーブルの高速リカバリをサポート#7937
    • ADD INDEXの同時実行数の動的な調整をサポート#8295
    • テーブルまたは列の文字セットをutf8 / utf8mb4 #8037に変更するサポート
    • デフォルトの文字セットをutf8からutf8mb4 #7965に変更します
    • サポート範囲パーティション#8011

ツール

  • TiDB Lightning
    • SQL ステートメントから KV ペアへの変換を大幅に高速化する#110
    • 単一テーブルのバッチ インポートをサポートして、インポートのパフォーマンスと安定性を向上させます#113

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をサポート
エコシステム
TiDB
TiKV
TiSpark
Chaos Mesh
© 2022 PingCAP. All Rights Reserved.