TiDB 2.1 RC1 リリースノート
2018 年 8 月 24 日に、TiDB 2.1 RC1 がリリースされました。TiDB 2.1 ベータ版と比較して、このリリースでは安定性、SQL オプティマイザー、統計情報、実行エンジンが大幅に改善されています。
ティビ
- 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
の誤った結果がいくつかのケースで発生する問題を修正#7288Data 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
問題#7053処理するadvertise-address
構成項目#7078を追加するGrpcKeepAlive
オプション#7100を追加- 接続を追加するか、
Token
のモニター#7110 - データデコードパフォーマンスを最適化する#7149
INFORMMATION_SCHEMA
#7236のPROCESSLIST
テーブルを追加します- 権限#7211検証で複数のルールにヒットした場合の順序の問題を修正
- エンコーディング関連のシステム変数のデフォルト値の一部を UTF-8 #7198に変更
- スロークエリログにさらに詳しい情報を表示する#7302
- PD に tidb-server 関連情報を登録し、HTTP API #7082でこの情報を取得することをサポート
- 互換性
- セッション変数
warning_count
とerror_count
#6945をサポート - システム変数#6958読み取り時にチェックを
Scope
追加 MAX_EXECUTION_TIME
構文#7012サポートするSET
構文#7020のより多くのステートメントをサポートする- システム変数#7117設定するときに有効性チェックを追加する
Prepare
文#7162のPlaceHolder
の数の検証を追加する- サポート
set character_set_results = null
#7353 flush status
構文#7369サポートするinformation_schema
#7347のSET
とENUM
の列サイズを修正- テーブル#7378を作成するためのステートメントの
NATIONAL CHARACTER
構文をサポートします LOAD DATA
文#7391のCHARACTER SET
構文をサポートするSET
とENUM
タイプの列情報を修正#7417CREATE USER
文#7402のIDENTIFIED WITH
構文をサポートするTIMESTAMP
計算プロセス#7418中に精度が失われる問題を修正SYSTEM
以上の変数の妥当性検証をサポート#7196CHAR_LENGTH
関数がバイナリ文字列#7410を計算するときの誤った結果を修正GROUP BY
#7448を含む文の誤った結果CONCAT
修正します。DECIMAL
型をSTRING
型にキャストする際の不正確な型長の問題を修正#7451
- セッション変数
- DMML の
- 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の優先度を制御します。 information_schema.tables
#7037のAUTO-INCREMENT
の表示問題を修正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クライアント終了時に誤ったログが出力される問題を修正
- リージョンハートビートレイテンシーの誤った統計を修正
ティクヴ
- 特徴
- ホット領域への書き込み操作によって領域が大きくなりすぎるのを回避するために
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
の設定ミスによる問題を修正