TiDB 2.1 GA リリース ノート

2018 年 11 月 30 日に、TiDB 2.1 GA がリリースされました。このリリースの次の更新を参照してください。 TiDB 2.0 と比較して、このリリースでは安定性、パフォーマンス、互換性、使いやすさが大幅に向上しています。

TiDB

  • SQLオプティマイザー

    • Index Joinの選択範囲を最適化して実行パフォーマンスを向上させます。

    • 外表の選択をIndex Joinに最適化し、行数の推定値が小さい表を外表として使用します。

    • 適切なインデックスが利用できない場合でもマージ結合を使用できるように結合ヒントTIDB_SMJを最適化します。

    • 結合ヒントTIDB_INLJを最適化して結合する内部テーブルを指定する

    • 相関サブクエリを最適化し、フィルターをプッシュダウンし、インデックス選択範囲を拡張して、一部のクエリの効率を桁違いに向上させます。

    • UPDATEステートメントとDELETEステートメントでのインデックス ヒントと結合ヒントの使用のサポート

    • より多くの関数の押し下げをサポート: ABS / CEIL / FLOOR / IS TRUE / IS FALSE

    • 組み込み関数IFおよびIFNULL定数折りたたみアルゴリズムを最適化します。

    • EXPLAINステートメントの出力を最適化し、階層構造を使用して演算子間の関係を表示します。

  • SQL実行者

    • すべての集計関数をリファクタリングし、 StreamHashの集計演算子の実行効率を向上させます。

    • 並列Hash Aggregate演算子を実装し、一部のシナリオでコンピューティング パフォーマンスを 350% 向上させます。

    • 並列Project演算子を実装すると、一部のシナリオでパフォーマンスが 74% 向上します。

    • Hash Joinの内部テーブルと外部テーブルのデータを同時に読み込み、実行パフォーマンスを向上させます。

    • REPLACE INTOステートメントの実行速度を最適化し、パフォーマンスを 10 倍近く向上させます。

    • 時間データ型のメモリ使用量を最適化し、時間データ型のメモリ使用量を 50% 削減します。

    • ポイント選択パフォーマンスを最適化し、Sysbench のポイント選択効率の結果を 60% 向上させます。

    • 幅の広いテーブルの挿入または更新における TiDB のパフォーマンスが 20 倍向上します。

    • 構成ファイル内の単一ステートメントのメモリ上限の構成をサポート

    • ハッシュ結合の実行を最適化します。結合タイプが内部結合またはセミ結合で、内部テーブルが空の場合、外部テーブルからデータを読み取らずに結果を返します。

    • EXPLAIN ANALYZEを使用して、各演算子の実行時間や返された行数などの実行時統計を確認できるようになりました。

  • 統計

    • 一日の特定の時間帯のみ自動分析統計を有効にするサポート

    • クエリのフィードバックに従ってテーブル統計を自動的に更新するサポート

    • ANALYZE TABLE WITH BUCKETSステートメントを使用したヒストグラム内のバケット数の構成のサポート

    • 等価クエリと範囲クエリの混合クエリに対してヒストグラムを使用して行数推定アルゴリズムを最適化します。

    • 次の組み込み関数をサポートします。

      • json_contains

      • json_contains_path

      • encode/decode

  • サーバ

    • 競合するトランザクションのパフォーマンスを最適化するために、tidb-server インスタンス内でローカルに競合するトランザクションをキューに入れることをサポートします。

    • サーバー側カーソルのサポート

    • HTTP APIを追加します

      • TiKV クラスター内のテーブル リージョンの分散

      • general logを開くかどうかを制御します。

      • オンラインでのログレベルの変更のサポート

      • TiDB クラスター情報を確認する

  • DDL

    • 時間のかかるインデックスの追加操作が他の操作をブロックすることを回避するために、インデックスの追加ステートメントと他のステートメントの並列実行をサポートします。

    • ADD INDEXの実行速度を最適化し、一部のシナリオで大幅に改善します。

    • TiDB がDDL Ownerであるかどうかの判断を容易にするためにselect tidb_is_ddl_owner()ステートメントをサポートします。

    • ALTER TABLE FORCE構文をサポートする

    • ALTER TABLE RENAME KEY TO構文をサポートする

    • admin show ddl jobsの出力情報にテーブル名とデータベース名を追加します。

    • DDL 所有者を解放し、新しい DDL 所有者の選択を開始するためのddl/owner/resign HTTP インターフェイスの使用のサポート

  • 互換性

    • より多くの MySQL 構文をサポートする

    • BIT集計関数がALLパラメータをサポートするようにします。

    • SHOW PRIVILEGESステートメントをサポートします

    • LOAD DATAステートメントでCHARACTER SET構文をサポートします

    • CREATE USERステートメントでIDENTIFIED WITH構文をサポートします

    • LOAD DATA IGNORE LINESステートメントをサポートします

    • Show ProcessListステートメントはより正確な情報を返します

配置Driver(PD)

TiKV

ツール

アップグレードに関する注意事項

  • TiDB 2.1 は、新しいstorageエンジンを採用しているため、v2.0.x 以前へのダウングレードをサポートしていません。
  • TiDB 2.1 では並列 DDL が有効になっているため、TiDB バージョン 2.0.1 より前のクラスターは、ローリング アップデートを使用して 2.1 にアップグレードできません。次の 2 つのオプションのいずれかを選択できます。

    • クラスターを停止し、2.1 に直接アップグレードします。
    • 2.0.1 以降の 2.0.x バージョンにロール アップデートしてから、2.1 バージョンにロール アップデートします。
  • TiDB 2.0.6 以前から TiDB 2.1 にアップグレードする場合は、進行中の DDL 操作、特に時間のかかるAdd Index操作があるかどうかを確認してください。これは、DDL 操作によりアップグレード プロセスが遅くなるためです。進行中の DDL 操作がある場合は、DDL 操作が完了するまで待ってから、ロール更新を実行します。

このページは役に立ちましたか?