tencent cloud

TencentDB for MySQL

ドキュメントTencentDB for MySQL自社研究カーネルTXRocksエンジンTXRocksエンジンのご使用にあたっての注意事項

TXRocksエンジンのご使用にあたっての注意事項

PDF
フォーカスモード
フォントサイズ
最終更新日: 2024-07-25 16:20:38
TXRocksは、Tencent TXSQLチームがRocksDBに基づいて開発したトランザクション型ストレージエンジンであり、さらにストレージスペースを節約し、書き込みの拡大率が低いという利点を併せ持っています。

製品紹介

TXRocksは、Tencent TXSQLチームがRocksDBに基づいて開発したトランザクション型ストレージエンジンであり、RocksDB LSM Treeストレージ構造により、InnoDBページの半分格納と断片化の無駄を減らすと同時に、コンパクトな形式のストレージを使うことができます。そのため、TXRocksはInnoDBと近い性能を維持するの前提の下で、ストレージ空間はInnoDBによりも半分以上節約することができ、さらにトランザクションの読み書きパフォーマンスが要求され、大量のデータを保存するビジネスに最適です。

前提条件

データベースのバージョンはMySQL 5.7、8.0で、アーキテクチャは2ノードでなければなりません。

TencentDB for MySQLインスタンスの購入(RocksDBエンジン)

TencentDB for MySQL購入ページでインスタンスを購入するときに、エンジンとしてRocksDBを選択することができます。他のパラメータ項目について、MySQLインスタンスを作成をご参照ください。


説明:
RocksDBはkey-valueストレージエンジンであり、効率的な書き込み能力と高圧縮ストレージとして知られています。現時点で、エンジンとしてRocksDBを選択することをサポートしているのはMySQL 5.7、8.0だけです。

RocksDBテーブルの作成

インスタンスを作成する際に、デフォルトのエンジンをRocksDBと設定する場合、テーブル作成時のデフォルトエンジンはRocksDBです。デフォルトエンジンは、以下のコマンドで確認できます:
show variables like '%default_storage_engine%';


デフォルトエンジンはRocksDBである場合は、テーブル作成ステートメントではストレージエンジンの指定が許可されません。

テーブルが正常に作成された後、その後の使用方法はInnoDBと同様に、データはRocksDBエンジンに格納されます。

エンジン機能の制限

TXRocksは、次の表に示すように、エンジン機能にいくつかの制限があります:
機能分類
機能項目
TXRocks制限
DDL
Online DDL
サポートされません。例えば、ALTER TABLE ... ALOGRITHM=INSTANT機能をサポートしません。Partition 管理操作ではCOPYアルゴリズムだけをサポートします。
SQL機能
外部キー
外部キー(Foreign Key)がサポートされません
パーティションテーブル
パーティションテーブル(Partition)がサポートされません
生成列
生成列(Generated Columns)がサポートされません
明示的なDefault表現式
サポートされません。例えば、CREATE TABLE t1(c1 FLOAT DEFAULT(RAND()))ENGINE=ROCKSDB; が失敗して、'Specited storage engine' is not supported for default value expressions.が表示されます
暗号化テーブル
暗号化テーブルをサポートしません
インデックス
空間インデックス
空間インデックス(Spatial Index)、空間データ型(GEOMETRY、POINT等)をサポートしません
フルテキストインデックス
フルテキストインデックス(Fulltext Index)をサポートしません
多値インデックス
多値インデックス(multi-valued index)をサポートしません
レプリケーション
グループレプリケーション
グループレプリケーション(Group Replication)をサポートしません
binlog形式
ROW形式をサポートしますが、stmtまたはmixed形式をサポートしません
クローンプラグイン
クローンプラグイン(Clone Plugin)をサポートしません
トランスポータブル表領域
トランスポータブル表領域(Transportable Tablespace)をサポートしません
トランザクションとロック
LOCK NOWAITとSKIP LOCKED
LOCK NOWAITとSKIP LOCKEDをサポートしません
ギャップロック
ギャップロック(Gap Lock)をサポートしません
Savepoint
Savepointをサポートしません
LOBフィールドの一部更新
LOBフィールドの一部更新をサポートしません
XAトランザクション
使用をお勧めしません

パラメータの説明

説明:
TencentDB for MySQLインスタンスを作成する際には、RocksDB をデフォルトストレージエンジンとして選択でき、下の表のパラメータの説明に基づいて自社の業務に合わせたパラメータテンプレートを調整することができます。

MySQL 5.7に関するパラメータリスト

パラメータ名称
再起動が必要かどうか
デフォルト値
許容値
説明
rocksdb_use_direct_io_for_flush_and_compaction
はい
ON
ON/OFF
compactionのときにDIOを使用するかどうかを指定します。
rocksdb_flush_log_at_trx_commit
いいえ
1
0/1/2
ログをディスクに書き込むタイミングを制御します。
innodb_flush_log_at_trx_commitと同様に、トランザクションがコミットされたときに同期するかどうかを指定します。
0の場合、トランザクションがコミットされるときに同期しません。
1の場合、トランザクションがコミットされるたびに同期します。
2の場合、1秒ごとに一回同期します。
rocksdb_lock_wait_timeout
いいえ
1
1-1073741824
ロックの待ち時間超過時間(秒)。
rocksdb_deadlock_detect
いいえ
ON
ON/OFF
デッドロック検出スイッチです。オンにすると、すべてのデッドロック情報はmysqldエラーログに記録されます。
rocksdb_manual_wal_flush
はい
ON
ON/OFF
rocksdb_max_total_wal_sizeよりも大きなWALの場合、一番旧いWALファイルを確実に削除するよう、RocksDBは強制的に列ファミリデータをディスクに書き込みます。

MySQL 8.0関連パラメータリスト

パラメータ名称
再起動が必要かどうか
デフォルト値
許容値
説明
rocksdb_flush_log_at_trx_commit
いいえ
1
0/1/2
ログをディスクに書き込むタイミングを制御します。
innodb_flush_log_at_trx_commitと同様に、トランザクションがコミットされたときに同期するかどうかを指定します。
0の場合、トランザクションがコミットされるときに同期しません。
1の場合、トランザクションがコミットされるたびに同期します。
2の場合、1秒ごとに一回同期します。
rocksdb_lock_wait_timeout
いいえ
1
1-1073741824
ロックの待ち時間超過時間(秒)。
rocksdb_merge_buf_size
いいえ
524288(=512K)
100-18446744073709551615
セカンダリインデックスの作成時に使用されるmerge-sort bufferのサイズ。
rocksdb_merge_combine_read_size
いいえ
8388608 (=8M)
524288(=512K)-18446744073709551615
セカンダリインデックスの作成時に使用されるマルチパスのためのメモリの大きさ。
rocksdb_deadlock_detect
いいえ
ON
ON/OFF
デッドロック検出スイッチ。
rocksdb_manual_wal_flush
はい
ON
ON/OFF
rocksdb_max_total_wal_sizeよりも大きなWALの場合、一番旧いWALファイルを確実に削除するよう、RocksDBは強制的に列ファミリデータをディスクに書き込みます。

RocksDB エンジンモニタリング項目

下の表はRocksDBのエンジンモニタリングメトリックです。
メトリック
説明
rocksdb_bytes_read
ディスク読み取り数
rocksdb_bytes_written
ディスク書き込み数
rocksdb_block_cache_bytes_read
データブロック読み取り数
rocksdb_block_cache_bytes_write
データブロック書き込み数
rocksdb_wal_log_capacity
WAL書き込みログのサイズ

ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック