重要
このページは英語版のページを機械翻訳しています。原文はこちらからご覧ください。

TiDB3.0ベータリリースノート

2019年1月19日、TiDB3.0ベータ版がリリースされました。対応するTiDBAnsible3.0ベータ版もリリースされています。 TiDB 3.0 Betaは、安定性、SQLオプティマイザー、統計、および実行エンジンに重点を置いたTiDB2.1上に構築されています。

TiDB

  • 新機能
    • サポートビュー
    • ウィンドウ関数のサポート
    • 範囲分割をサポート
    • ハッシュ分割をサポートする
  • SQLオプティマイザー
    • #7676の最適化ルールを再サポートしAggregationElimination
    • NOT EXISTSのサブクエリを最適化し、Anti SemiJoin3に変換し#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の変数を追加して、この最適化ルールを有効にしてデフォルトで開くかどうかを制御します#7531
    • DOステートメント#8343でのサブクエリの使用のサポート
    • 外部結合除去の最適化ルールを追加して、不要なテーブルスキャンと結合操作を減らし、実行パフォーマンスを向上させます#8021
    • TIDB_INLJオプティマイザーのヒントの動作を変更すると、オプティマイザーはヒントで指定されたテーブルをインデックス結合#8243の内部テーブルとして使用します。
    • Prepareステートメントの実行プランキャッシュが有効になったときに使用できるように、 PointGetを広範囲に使用します#8108
    • 複数のテーブルを結合するときに結合順序の選択を最適化するために、貪欲なJoin Reorderアルゴリズムを導入します#8394
    • サポートビュー#8757
    • サポートウィンドウ関数#8630
    • 使いやすさを向上させるために、 TIDB_INLJが有効でない場合は、クライアントに警告を返します#9037
    • フィルタリング条件とテーブル統計に基づいてフィルタリングされたデータの統計を推定することをサポート#7921
    • #8885のPartitionPruning最適化ルールを改善します。
  • 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が使用する初期Chunkのサイズを制御します。
    • shard_row_id_bitsを改善し、自動インクリメント#8936をクロスチェックします
  • Prepareステートメント
    • 異なるユーザー変数が入力されたときにクエリプランが正しいことを保証するために、サブクエリを含むPrepareステートメントをクエリプランキャッシュに追加することを禁止します#8064
    • クエリプランのキャッシュを最適化して、ステートメントに非決定論関数が含まれている場合にプランをキャッシュできるようにします#8105
    • クエリプランキャッシュを最適化して、 DELETE / UPDATE / INSERTのクエリプランをキャッシュできるようにします#8107
    • クエリプランキャッシュを最適化して、 DEALLOCATEステートメント#8332の実行時に対応するプランを削除します。
    • クエリプランキャッシュを最適化して、メモリ使用量を制限することにより、あまりにも多くのプランをキャッシュすることによって引き起こされるTiDBOOMの問題を回避します#8339
    • ORDER BYGROUP BY?プレースホルダーの使用をサポートするようにPrepareステートメントを最適化しLIMIT #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
  • 互換性
    • #9027モードをサポートALLOW_INVALID_DATES
    • CSVファイルのLoadDataのフォールトトレランスを改善#9005
    • MySQL320ハンドシェイクプロトコルをサポートする#8812
    • 符号なしbigint列を自動インクリメント列#8181として使用することをサポート
    • SHOW CREATE DATABASE IF NOT EXISTS構文#8926をサポートします
    • フィルタリング条件にユーザー変数が含まれている場合は、述語プッシュダウン操作を破棄して、ユーザー変数を使用してウィンドウ関数の動作をモックするMySQLの動作との互換性を向上させます#8412
  • DDL
    • 誤って削除されたテーブルの高速リカバリをサポート#7937
    • ADD INDEXの同時実行数の動的な調整をサポート#8295
    • テーブルまたは#8037の文字セットのutf8への変更をutf8mb4
    • デフォルトの文字セットをutf8から#7965に変更しutf8mb4
    • サポート範囲パーティション#8011

ツール

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

PD

  • RegionStorageを追加して、リージョンメタデータを個別に保存します#1237
  • シャッフルホットリージョンスケジューラを追加する#1361
  • スケジューリングパラメータ関連のメトリックを追加する#1406
  • クラスタラベル関連のメトリックを追加する#1402
  • インポートするデータシミュレーターを追加する#1263
  • リーダー選出に関するWatchの問題を修正#1396

TiKV

  • 分散#3179をサポート
  • スナップショットを適用する前にRocksDBレベル0ファイルをチェックして、書き込みストール#3606を回避します
  • リバースraw_scanおよびraw_batch_scan#3742
  • HTTPを使用した監視情報の取得のサポート#3855
  • DSTをより適切にサポートする#3786
  • バッチ#3931でのRaftメッセージの送受信をサポート
  • 新しいストレージエンジン#3985を発表
  • gRPCをv1.17.2にアップグレードする#4023
  • バッチ#4043でのクライアント要求の受信と応答の送信をサポート
  • マルチスレッド適用#4044をサポート
  • マルチスレッド#4066をサポート
このページの内容