TiDB 2.1 RC1 リリースノート
2018 年 8 月 24 日、TiDB 2.1 RC1 がリリースされました。 TiDB 2.1 ベータと比較して、このリリースでは安定性、SQL オプティマイザー、統計情報、および実行エンジンが大幅に向上しています。
TiDB
- SQLオプティマイザー
- 相関サブクエリを非相関化すると、場合によっては間違った結果が返される問題を修正#6972
Explain
#7011 #7041の出力結果を最適化します。IndexJoin
#7019の外部テーブルの選択戦略を最適化します。- 非
PREPARE
ステートメント#7040のプラン キャッシュを削除します。 INSERT
ステートメントが正しく解析されずに実行される場合がある問題を修正#7068IndexJoin
の結果が正しくない場合がある問題を修正#7150- 一意のインデックスを使用して
NULL
値が見つからない場合がある問題を修正#7163 - UTF-8 #7194でのプレフィックス インデックスの範囲計算の問題を修正します。
Project
演算子を削除すると結果が正しくなくなる場合がある問題を修正#7257- 主キーが整数#7316の場合に
USE INDEX(PRIMARY)
が使用できない問題を修正 - 相関列を使用してインデックス範囲を計算できない場合がある問題を修正#7357
- SQL実行エンジン
- 場合によっては夏時間が正しく計算されない問題を修正#6823
- 集計関数フレームワークをリファクタリングして、
Stream
およびHash
集計演算子の実行効率を向上させる#6852 Hash
集計演算子が正常に終了できない場合がある問題を修正#6982BIT_AND
/BIT_OR
/BIT_XOR
が非整数データを正しく処理できない問題を修正#6994REPLACE INTO
ステートメントの実行速度を最適化し、パフォーマンスを 10 倍近く向上させます#7027- 時間型データのメモリ使用量を最適化し、時間型データのメモリ使用量を 50% 削減します#7043
- 返された結果が
UNION
ステートメントで符号付き整数と符号なし整数が混在するという問題を修正します。これは MySQL #7112と互換性がありません。 LPAD
/RPAD
/TO_BASE64
/FROM_BASE64
/REPEAT
#7171 #7266 #7409 #7431によって適用されるメモリが多すぎることによってpanicの問題を修正MergeJoin
/IndexJoin
がNULL
値#7255を処理する場合の誤った結果を修正- 場合によっては
Outer Join
の誤った結果を修正#7288 Data Truncated
のエラー メッセージを改善して、テーブル#7401内の間違ったデータと対応するフィールドを見つけやすくしました。- 場合によっては
decimal
の誤った結果を修正#7001 #7113 #7202 #7208 - ポイントセレクトパフォーマンスの最適化#6937
- 根本的な問題#7211を回避するには、分離レベル
Read Committed
禁止します。 - 場合によっては
LTRIM
/RTRIM
/TRIM
の誤った結果を修正#7291 MaxOneRow
演算子が返される結果が 1 行を超えないことを保証できない問題を修正します#7375- 範囲が多すぎるコプロセッサー要求を分割する#7454
- 統計
- サーバ
- 権限情報ロード#6976のバグを修正
Kill
コマンドの権限チェック#6954が厳しすぎる問題を修正- 一部のバイナリ数値型の削除の問題を修正します#6922
- 出力ログの短縮#7029
mismatchClusterID
問題に対処する#7053advertise-address
設定項目#7078を追加しますGrpcKeepAlive
オプション#7100を追加します。- 接続または
Token
回の監視#7110を追加 - データデコードパフォーマンスの最適化#7149
INFORMMATION_SCHEMA
#7236にPROCESSLIST
テーブルを追加します- 権限#7211の検証で複数のルールがヒットした場合の順序の問題を修正
- エンコーディング関連のシステム変数の一部のデフォルト値を UTF-8 に変更します#7198
- スロークエリログにさらに詳細な情報を表示させる#7302
- PD への tidb サーバー関連情報の登録と HTTP API #7082によるこの情報の取得のサポート
- 互換性
- セッション変数
warning_count
およびerror_count
をサポート#6945 - システム変数を読み取るときのチェックを
Scope
追加#6958 MAX_EXECUTION_TIME
構文#7012をサポートします。SET
構文#7020のより多くのステートメントをサポートします。- システム変数設定時の有効性チェックを追加#7117
Prepare
ステートメントにPlaceHolder
の数の検証を追加します#7162- サポート
set character_set_results = null
#7353 flush status
構文#7369をサポートします。information_schema
#7347のSET
とENUM
型の列サイズを修正- テーブルを作成するためのステートメントの
NATIONAL CHARACTER
構文のサポート#7378 LOAD DATA
ステートメントでCHARACTER SET
構文をサポートします#7391SET
型とENUM
型の列情報を修正#7417CREATE USER
ステートメントでIDENTIFIED WITH
構文をサポートします#7402TIMESTAMP
計算プロセス中に精度が失われる問題を修正#7418- より多くの
SYSTEM
変数の有効性検証をサポート#7196 CHAR_LENGTH
関数がバイナリ文字列#7410を計算するときの誤った結果を修正しました。GROUP BY
#7448を含むステートメント内の誤ったCONCAT
結果を修正しました。DECIMAL
型をSTRING
型#7451にキャストするときの不正確な型の長さの問題を修正
- セッション変数
- DML
- DDL
Schema
が複製されているかどうかのDDL判定方法を改善し、場合によっては誤判定を避けるようにする#7319- インデックス追加処理#6993の結果
SHOW CREATE TABLE
を修正 - 非制限
sql-mode
#7230では、デフォルト値text
/blob
/json
が NULL になることを許可します - 場合によっては
ADD INDEX
問題を修正する#7142 UNIQUE-KEY
インデックス演算の追加速度を大幅に向上#7132- UTF-8 文字セット#7109のプレフィックス インデックスの切り捨ての問題を修正します。
- 環境変数
tidb_ddl_reorg_priority
を追加して、add-index
操作#7116の優先順位を制御します。 AUTO-INCREMENT
information_schema.tables
#7037表示の問題を修正admin show ddl jobs <number>
コマンドをサポートし、指定された数の DDL ジョブの出力をサポート#7028- DDL ジョブの並列実行のサポート#6955
- テーブルパーティション (Experimental)
- トップレベルのパーティションをサポート
- サポート
Range Partition
PD
- 特徴
- バージョン管理メカニズムを導入し、互換性のあるクラスターのローリング アップデートをサポートします。
region merge
機能を有効にするGetPrevRegion
インターフェースをサポート- バッチでのリージョン分割のサポート
- GC セーフポイントの保存をサポート
- 改善点
- TSO 割り当てがシステム クロックの逆行によって影響を受ける問題を最適化します。
- リージョンのハートビート処理のパフォーマンスを最適化する
- リージョンツリーのパフォーマンスを最適化する
- ホットスポット統計の計算パフォーマンスを最適化する
- APIインターフェースのエラーコードを返す最適化
- スケジュール戦略を制御するオプションを追加する
label
での特殊文字の使用を禁止する- スケジュールシミュレータを改善する
- pd-ctl の統計を使用したリージョン分割のサポート
- pd-ctl で
jq
呼び出すことによる JSON 出力のフォーマットのサポート - etcd Raftステートマシンに関するメトリクスを追加
- バグの修正
- Leaderを切り替えた後に名前空間がリロードされない問題を修正
- 名前空間のスケジュールがスケジュール制限を超える問題を修正
- ホットスポットのスケジュールがスケジュール制限を超える問題を修正
- PDクライアント終了時に誤ったログが出力される問題を修正
- リージョンのハートビートレイテンシーの誤った統計を修正
TiKV
- 特徴
- ホット リージョンでの書き込み操作によって発生する大きすぎるリージョンを回避するためのサポート
batch split
- 行数に基づいたリージョンの分割をサポートし、インデックス スキャンの効率を向上させます。
- ホット リージョンでの書き込み操作によって発生する大きすぎるリージョンを回避するためのサポート
- パフォーマンス
LocalReader
を使用して読み取り操作を raftstore スレッドから分離し、読み取りレイテンシーを短縮します。- MVCC フレームワークをリファクタリングし、メモリ使用量を最適化し、スキャン読み取りパフォーマンスを向上させます。
- I/O 使用量を削減するための統計推定に基づいたリージョン分割のサポート
- ロールバック レコードに対する連続書き込み操作によって読み取りパフォーマンスが影響を受ける問題を最適化します。
- プッシュダウン集計コンピューティングのメモリ使用量を削減する
- 改善点
- 多数の組み込み関数に対するプッシュダウンのサポートと、より優れた文字セットのサポートを追加します。
- GC ワークフローを最適化し、GC 速度を向上させ、システムに対する GC の影響を軽減します。
prevote
有効にすると、ネットワーク異常時のサービス回復が高速化されます。- RocksDB ログ ファイルの関連設定項目を追加します。
- デフォルト設定の
scheduler_latch
を調整します。 - tikv-ctl を使用してデータを手動で圧縮する場合に、RocksDB の最レイヤーでデータを圧縮するかどうかの設定をサポート
- TiKV 起動時の環境変数のチェックを追加
- 既存のデータに基づいて
dynamic_level_bytes
パラメータの動的構成をサポート - ログ形式のカスタマイズをサポート
- tikv-fail を tikv-ctl に統合する
- スレッドの I/O メトリックを追加する
- バグの修正
- 小数関連の問題を修正
- 誤って
gRPC max_send_message_len
を設定してしまう問題を修正 region_size
の構成ミスによって引き起こされる問題を修正する