TiDB 2.1 ベータ版リリースノート

2018 年 6 月 29 日、TiDB 2.1 ベータ版がリリースされました。 TiDB 2.0 と比較して、このリリースでは安定性、SQL オプティマイザー、統計情報、および実行エンジンが大幅に向上しています。

TiDB

  • SQLオプティマイザー
    • Index Joinの選択範囲を最適化して実行パフォーマンスを向上させます。
    • 相関サブクエリを最適化し、 Filterを押し下げ、インデックス範囲を拡張して、一部のクエリの効率を桁違いに向上させます。
    • UPDATEおよびDELETEステートメントのIndex HintJoin Hintをサポートします。
    • 使用可能なインデックスが存在しない場合はヒントTIDM_SMJを検証します
    • ABSCEILFLOORIS TRUE 、およびIS FALSE関数のプッシュダウンをサポート
    • 特に定数フォールディング処理でのIFIFNULL関数を処理する
  • SQL実行エンジン
    • 並列Hash Aggregateオペレーターを実装し、一部のシナリオでHash Aggregateのコンピューティング パフォーマンスを 350% 向上させます。
    • 並列Project演算子を実装すると、一部のシナリオでパフォーマンスが 74% 向上します
    • Hash JoinつのテーブルのInner Outerのテーブルのデータを同時に読み取り、実行パフォーマンスを向上させます
    • 一部のシナリオでのINSERT … ON DUPLICATE KEY UPDATE …の誤った結果を修正
    • CONCAT_WSFLOORCEIL 、およびDIV組み込み関数の誤った結果を修正
  • サーバ
    • HTTP API を追加して、TiKV クラスター内のテーブル リージョンの分散を分散します。
    • 自動のしきい値を制御するauto_analyze_ratioシステム変数を追加しますAnalyze
    • 一般ログを開くかどうかを制御する HTTP API を追加します。
    • HTTP API を追加してオンラインでログレベルを変更する
    • 一般ログとスロークエリログにユーザー情報を追加します。
    • サーバー側カーソルをサポートする
  • 互換性
    • より多くの MySQL 構文をサポート
    • bit集計関数がALLパラメータをサポートするようにします。
    • SHOW PRIVILEGESステートメントをサポートします
  • DML
    • INSERT INTO SELECTステートメントのメモリ使用量を削減します。
    • PlanCacheのパフォーマンスの問題を修正
    • トランザクションの自動再試行時間を制御するtidb_retry_limitシステム変数を追加します。
    • tidb_disable_txn_auto_retryシステム変数を追加して、トランザクションを自動的に試行するかどうかを制御します
    • time種類の書き込みデータの精度問題を修正
    • ローカルで競合するトランザクションのキューをサポートし、競合するトランザクションのパフォーマンスを最適化します。
    • UPDATEのステートメントのうちAffected Rowsを修正
    • insert ignore on duplicate key updateのステートメントのパフォーマンスを最適化する
  • DDL
    • CreateTableステートメントの実行速度を最適化します。
    • ADD INDEXの実行速度を最適化し、一部のシナリオで大幅に向上します。
    • 追加した列数がテーブル列数の制限をAlter table add columnつ超える問題を修正
    • 異常な状態で DDL ジョブの再試行により TiKV への圧力が増大する問題を修正
    • TiDB が異常な状態でスキーマ情報を継続的にリロードする問題を修正
    • SHOW CREATE TABLEの結果にFOREIGN KEYの関連情報を出力しない
    • TiDB がDDL Ownerであるかどうかの判断を容易にするためにselect tidb_is_ddl_owner()ステートメントをサポートします。
    • 一部のシナリオでYearタイプでインデックスが削除される問題を修正
    • 同時実行シナリオにおけるテーブルの名前変更の問題を修正
    • AlterTableForce構文をサポートする
    • AlterTableRenameIndex構文をFromKeyおよびToKeyでサポートする
    • admin show ddl jobsの出力情報にテーブル名とデータベース名を追加します。

PD

  • PD ノード間でRaft PreVote を有効にして、ネットワーク分離後にネットワークが回復したときにリーダーの再選を回避します
  • Balance Scheduler が小さなリージョンを頻繁にスケジュールする問題を最適化します。
  • ホットスポット スケジューラを最適化して、トラフィック統計情報のジッターへの適応性を向上させます。
  • region mergeをスケジュールするときに行数が多いリージョンをスキップする
  • デフォルトでraft learner有効にすると、スケジュール中のマシンの障害によってデータが利用できなくなるリスクが軽減されます。
  • pd-recoverからmax-replicaを削除
  • Filterメトリクスを追加
  • tikv-ctl の安全でないリカバリ後にリージョン情報が更新されない問題を修正
  • 一部のシナリオでレプリカの移行によって TiKV ディスク容量が使い果たされる問題を修正
  • 互換性に関する注意事項
    • 新しいバージョンのstorageエンジンの更新のため、v2.0.x 以前へのロールバックはサポートされません
    • 新しいバージョンの PD では、デフォルトでraft learnerが有効になります。クラスターを 1.x から 2.1 にアップグレードする場合は、アップグレード前にマシンを停止するか、ローリング アップデートを最初に TiKV に適用してから PD に適用する必要があります。

TiKV

  • Rustをバージョンnightly-2018-06-14にアップグレードする
  • Raft PreVoteを有効にすると、ネットワーク分離後にネットワークが回復したときに生成されるリーダーの再選を回避できます。
  • RocksDB の各レイヤーのファイル数とingestの関連情報を表示するメトリックを追加します。
  • GC が動作する場合、バージョンが多すぎる場合はkeyを出力します
  • static metricを使用すると、マルチラベル メトリックのパフォーマンスが最適化されます (YCSB raw getは 3% 向上します)。
  • 複数のモジュールのboxを削除し、パターンを使用して動作パフォーマンスを向上させます (YCSB raw getは 3% 向上)
  • ログ書き込みのパフォーマンスを向上させるにはasynchronous logを使用します。
  • スレッドのステータスを収集するためのメトリックを追加する
  • アプリケーションで使用されるbox減らしてメモリコピー時間を短縮し、パフォーマンスを向上させます。

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

Playground
新規
登録なしで TiDB の機能をワンストップでインタラクティブに体験できます。
製品
TiDB Cloud
TiDB
価格
PoC お問い合わせ
エコシステム
TiKV
TiFlash
OSS Insight
© 2024 PingCAP. All Rights Reserved.
Privacy Policy.