TiDB 3.0.4 リリースノート
発売日:2019年10月8日
TiDB バージョン: 3.0.4
TiDB Ansible バージョン: 3.0.4
新機能
- SQL レベルでパフォーマンスの問題をトラブルシューティングするには、
performance_schema.events_statements_summary_by_digest
システム テーブルを追加します。 - TiDB の
SHOW TABLE REGIONS
構文にWHERE
句を追加します。 - Reparoに
worker-count
とtxn-batch
設定項目を追加して回復速度を制御します
- SQL レベルでパフォーマンスの問題をトラブルシューティングするには、
改善点
- TiKV でバッチリージョン分割コマンドと空の分割コマンドをサポートし、分割パフォーマンスを向上させます
- TiKV の RocksDB のダブルリンク リストをサポートし、逆スキャンのパフォーマンスを向上させます。
- クラスターの状態をより適切に診断するために、TiDB Ansible に 2 つのパフォーマンス ツール
iosnoop
とfuncslower
を追加します。 - 冗長なフィールドを削除して、TiDB の低速クエリ ログの出力を最適化します。
変化した行動
- デフォルト値の
txn-local-latches.enable
をfalse
に更新して、TiDB でのローカル トランザクションの競合をチェックするデフォルトの動作を無効にします。 - TiDB にグローバル スコープの
tidb_txn_mode
システム変数を追加し、悲観的ロックの使用を許可します。 TiDB は依然としてデフォルトで楽観的ロックを採用していることに注意してください。 - TiDB スロー クエリ ログの
Index_ids
フィールドをIndex_names
に置き換えて、スロー クエリ ログの使いやすさを向上させます。 - TiDB 構成ファイルに
split-region-max-num
パラメータを追加して、SPLIT TABLE
構文で許可されるリージョンの最大数を変更します。 - SQL の実行がメモリ制限を超えた場合、リンクを切断する代わりに
Out Of Memory Quota
エラーを返します。 - 誤操作を避けるために、TiDB の列の
AUTO_INCREMENT
属性を削除しないようにします。この属性を削除するには、システム変数tidb_allow_remove_auto_inc
を変更します。
- デフォルト値の
修正された問題
- コメント化されていない TiDB 固有の構文
PRE_SPLIT_REGIONS
により、データ レプリケーション中にダウンストリーム データベースでエラーが発生する可能性がある問題を修正します。 - カーソルを使用して
PREPARE
+EXECUTE
の結果を取得するときにスロー クエリ ログが正しくないという TiDB の問題を修正しました。 - 隣接する小さなリージョンをマージできないというPDの問題を修正
- プロセスが長時間実行されると、アイドル状態のクラスターでのファイル記述子のリークにより、TiKV プロセスが異常終了する可能性があるという TiKV の問題を修正しました。
- コメント化されていない TiDB 固有の構文
貢献者
このリリースにご協力いただいたコミュニティの次の貢献者に感謝します。
TiDB
- SQLオプティマイザー
- フィードバック#12170で分割すると無効なクエリ範囲が発生する場合がある問題を修正
- 結果に無効なキーが含まれている場合、エラーを返すのではなく、ステートメント
SHOW STATS_BUCKETS
で返されたエラーを 16 進数で表示します#12094 - クエリに
SLEEP
関数 (たとえば、select 1 from (select sleep(1)) t;)
) が含まれている場合、列のプルーニングによってクエリ#11953中に無効なsleep(1)
が発生する問題を修正します。 - クエリがテーブル データではなく列数のみに関係する場合は、インデックス スキャンを使用して IO を削減します#12112
- MySQL #12100との互換性を保つために、
use index()
でインデックスが指定されていない場合はインデックスを使用しないでください。 TopN
数が TiDB のトランザクション サイズ制限を超えているため、ステートメントANALYZE
が失敗する問題を修正するために、統計CMSketch
1 レコードの数を厳密に制限します#11914Update
ステートメント#12483に含まれるサブクエリの変換時に発生したエラーを修正- Limit 演算子を
IndexLookUpReader
実行ロジックにプッシュダウンすることで、select ... limit ... offset ...
ステートメントの実行パフォーマンスを最適化します#12378
- SQL実行エンジン
PREPARED
ステートメントが誤って実行された場合、ログに SQL ステートメントを出力します#12191UNIX_TIMESTAMP
関数を使用してパーティショニング#12169を実装する場合、パーティション プルーニングをサポートします。AUTO_INCREMENT
MAX int64
とMAX uint64
誤って割り当てた場合にエラーが報告されない問題を修正#12162SHOW TABLE … REGIONS
およびSHOW TABLE .. INDEX … REGIONS
構文にWHERE
句を追加します#12123- SQL の実行がメモリ制限#12127を超えた場合、リンクを切断する代わりに
Out Of Memory Quota
エラーを返します。 JSON_UNQUOTE
関数が JSON テキスト#11955を処理すると、誤った結果が返される問題を修正- 最初の行の
AUTO_INCREMENT
列に値を割り当てるときにLAST INSERT ID
が正しくない問題を修正します (たとえば、insert into t (pk, c) values (1, 2), (NULL, 3)
) #12002 PREPARE
ステートメントGROUPBY
の解析ルールが正しくない問題を修正します#12351- ポイントクエリ#12340における権限チェックが正しくない問題を修正
- 監視レコード#12331にステートメント
PREPARE
のsql_type
による期間が表示されない問題を修正 - ポイント クエリでのテーブルのエイリアスの使用をサポート (例:
select * from t tmp where a = "aa"
) #12282 - BIT型列#12423に負の数値を挿入する際、負の値を符号なしとして扱えない場合に発生するエラーを修正
- 時刻の誤った丸めを修正します (たとえば、
2019-09-11 11:17:47.999999666
2019-09-11 11:17:48
に四捨五入する必要があります) #12258 - 式ブロックリストの使用法を調整します (たとえば、
<
はIt
と同等です)。 #11975 - 存在しない関数エラーのメッセージにデータベース接頭辞を追加します (例:
[expression:1305]FUNCTION test.std_samp does not exist
) #12111
- サーバ
- スロークエリログに
Prev_stmt
フィールドを追加して、最後のステートメントがCOMMIT
#12180の場合に前のステートメントを出力します。 - 冗長なフィールドを削除して、低速クエリ ログの出力を最適化します#12144
- TiDB #12095でローカル トランザクションの競合をチェックするデフォルトの動作を無効にするには、デフォルト値の
txn-local-latches.enable
をfalse
に更新します。 - TiDB スロー クエリ ログの
Index_ids
フィールドをIndex_names
に置き換えて、スロー クエリ ログの使いやすさを向上させます#12061 - TiDB にグローバル スコープのシステム変数
tidb_txn_mode
を追加し、悲観的ロック#12049の使用を許可します。 - スロー クエリ ログに
Backoff
フィールドを追加して、2PC #12335のコミット フェーズでバックオフ情報を記録します。 - カーソルを使用して
PREPARE
+EXECUTE
の結果を取得する場合 (例:PREPARE stmt1FROM SELECT * FROM t WHERE a > ?; EXECUTE stmt1 USING @variable
)、スロー クエリのログが正しくない問題を修正します#12392 - サポート
tidb_enable_stmt_summary
.この機能を有効にすると、TiDB は SQL ステートメントをカウントし、システム テーブルを使用して結果をクエリできるようになりますperformance_schema.events_statements_summary_by_digest
#12308 - tikv-client の一部のログのレベルを調整します (たとえば、ログ レベル
batchRecvLoop fails
をERROR
からINFO
に変更します) #12383
- スロークエリログに
- DDL
tidb_allow_remove_auto_inc
変数を追加します。列のAUTO INCREMENT
属性の削除はデフォルトで無効になっています#12145- コメント化されていない TiDB 固有の構文
PRE_SPLIT_REGIONS
により、データ レプリケーション中にダウンストリーム データベースでエラーが発生する可能性がある問題を修正します#12120 - 設定ファイルに
split-region-max-num
変数を追加して、許容されるリージョンの最大数を調整できるようにします#12097 - リージョンを複数のリージョンに分割することをサポートし、リージョンスキャッタリング中のタイムアウトの問題を修正します#12343
- 2 つのインデックスによって参照される
AUTO_INCREMENT
列を含むインデックスが存在する場合、drop index
ステートメントが失敗する問題を修正します#12344
- モニター
connection_transient_failure_count
監視メトリクスを追加して、tikvclient
#12093の gRPC 接続エラーの数をカウントします。
TiKV
- Raftstore
- サーバ
- 保管所
PD
- 隣接する小さなリージョンを結合できない問題を修正#1726
pd-ctl
のTLS有効化パラメータが無効である問題を修正#1738- PD オペレーターが誤って削除されるというスレッド セーフティの問題を修正します#1734
- リージョン同期器#1739の TLS をサポート
ツール
- TiDBBinlog
- TiDB Lightning
TiDB Ansible
- TiSpark を v2.2.0 にアップグレードする#926
- TiDB 構成項目のデフォルト値を
pessimistic_txn
からtrue
に更新します#933 - システムレベルの監視メトリクスを
node_exporter
#938に追加します - TiDB Ansible に 2 つのパフォーマンス ツール
iosnoop
とfuncslower
を追加して、クラスターの状態をより適切に診断します#946 - パスワードの有効期限が切れた場合などの長い待ち時間に対処するために、raw モジュールをシェル モジュールに置き換えます#949
- TiDB 構成項目
txn_local_latches
のデフォルト値をfalse
に更新します。 - Grafana ダッシュボードの監視メトリクスとアラート ルールを最適化する#962 #963 #969
- 導入およびアップグレードの前に構成ファイルを確認してください#934 #972