機能説明
rowモードでは、単一のステートメントで複数行を更新する大規模トランザクションの場合、各行で1つのイベントが生成され、大量のbinlogが発生してデータベースのパフォーマンス低下を引き起こします。Tencent Cloudカーネルチームは大規模トランザクションシナリオの分析と最適化を通じてこの機能を開発しました。binlog書き込み最適化機能は大規模トランザクションを自動識別し、rowモードのbinlogをstatement形式のbinlogに変換します。さらに正規表現を使用して適用対象のデータベース/テーブルを設定可能なため、binlogを削減しデータベースの使用パフォーマンスを向上させます。
サポートバージョン
カーネルバージョン TDSQL-C for MySQL 8.0 3.1.12 以上。
適用シーン
この機能は主にrowモードにおける主キーなしテーブルの大規模トランザクション再生速度を向上させます。主キーなし再生の遅延が原因でレイテンシが発生している場合に有効にできます。
使用説明
binlog書き込み最適化機能は、SQL実行履歴の統計状況に基づいて、対象が大規模トランザクションである可能性を判断します。大規模トランザクションと識別され、かつ最適化可能と判断された場合、自動的に分離レベルをRR(Repeatable Read)レベルに引き上げ、binlogをStatement形式で書き込みます。
txsql_optimize_large_trans_binlog_mode は本機能に対応するスイッチです。
txsql_optimize_large_trans_binlog_mode が PART に設定されている場合、txsql_optimize_large_trans_binlog_tables に設定された正規表現に一致するテーブルのみに適用されます。例えば:
set global txsql_optimize_large_trans_binlog_tables = "test.t3,test.t4";
set global txsql_optimize_large_trans_binlog_tables = "test.t*";
set global txsql_optimize_large_trans_binlog_tables = "somedb*.t1";
パラメータ説明
|
txsql_optimize_large_trans_binlog_mode | グローバル | enum | OFF | OFF/ALL/PART | binlog書き込み最適化のスイッチ。ALLはすべてのテーブルに対して大規模トランザクションbinlog最適化を適用、PARTは正規表現に一致するテーブルに適用、OFFは機能を無効化します。 |
txsql_optimize_large_trans_binlog_tables | グローバル | char | *.* | - | *.* はPARTモードにおいてDB名.テーブル名を指定することを意味します。 dbnameとtablenameはいずれも正規表現をサポートします。例えば、"somedb.t1"はデータベースsomedbとテーブルt1を指し、これら両方の部分で正規表現が使用可能であることを示します。 test.* に設定した場合、testデータベース配下のすべてのテーブルが正規表現をサポートすることを意味し、設定後にtestデータベースに追加されたテーブルも含みます。 |