【MySQL/MariaDB/Percona】Percona ServerでXtraDBとTokuDBを使い分ける
Percona で XtraDB と TokuDB を使用する
XtraDB と TokuDB は、Percona Server で利用可能な 2 つの高性能ストレージエンジンです。それぞれ異なる特性を持ち、ワークロードによって最適なエンジンが異なってきます。
XtraDB は、InnoDB の改良版であり、Percona Server のデフォルトストレージエンジンです。InnoDB との互換性が高く、高いトランザクション処理能力と安定性を備えています。
TokuDB は、高速なキーバリューストアエンジンです。XtraDB よりも高い読み取り性能と書き込み性能を備え、データ分析や OLTP アプリケーションに適しています。
どちらのエンジンを使用すべきか
最適なエンジンは、ワークロードによって異なります。
- トランザクション処理中心のワークロード: XtraDB
- データ分析や OLTP アプリケーション: TokuDB
Percona で XtraDB と TokuDB を使用する
Percona Server で XtraDB と TokuDB を使用するには、以下の手順が必要です。
Percona Server は、公式サイトからダウンロードできます。
XtraDB または TokuDB を有効にするには、以下のいずれかの方法を使用できます。
- Percona Server の設定ファイルを変更する
- MySQL クライアントを使用してコマンドを実行する
テーブルを作成するには、以下のいずれかのコマンドを使用します。
- XtraDB テーブルを作成する:
CREATE TABLE ... ENGINE=InnoDB
例
以下の例は、Percona Server で TokuDB テーブルを作成する方法を示しています。
CREATE TABLE my_table (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL
) ENGINE=TokuDB;
この例では、my_table
という名前のテーブルを作成します。このテーブルには、id
、name
、email
という 3 つの列があります。id
列は主キーであり、自動的にインクリメントされます。name
列と email
列は必須です。このテーブルは TokuDB エンジンを使用して作成されます。
このチュートリアルでは、Percona Server で XtraDB と TokuDB を使用する基本的な方法について説明しました。詳細については、Percona Server のドキュメントを参照してください。
Percona Server で XtraDB と TokuDB を使用するサンプルコード
- Percona Server をインストールして起動します。
- XtraDB と TokuDB の両方のエンジンを使用して、2 つのテーブルを作成します。
- 各テーブルにデータを挿入します。
- テーブルを削除します。
前提条件
この例を実行するには、以下のものが必要です。
- MySQL クライアントがインストールされている
手順
- 以下のコマンドを使用して、Percona Server を起動します。
sudo service percona-server start
- 以下のコマンドを使用して、MySQL クライアントに接続します。
mysql -u root -p
- 以下のコマンドを使用して、XtraDB テーブルを作成します。
CREATE TABLE xtradb_table (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL
) ENGINE=InnoDB;
CREATE TABLE tokudb_table (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL
) ENGINE=TokuDB;
INSERT INTO xtradb_table (name, email) VALUES ('John Doe', '[email protected]');
INSERT INTO xtradb_table (name, email) VALUES ('Jane Doe', '[email protected]');
INSERT INTO tokudb_table (name, email) VALUES ('John Doe', '[email protected]');
INSERT INTO tokudb_table (name, email) VALUES ('Jane Doe', '[email protected]');
SELECT * FROM xtradb_table;
SELECT * FROM tokudb_table;
DROP TABLE xtradb_table;
DROP TABLE tokudb_table;
quit
sudo service percona-server stop
補足
- この例では、2 つのシンプルなテーブルを使用しています。実際のアプリケーションでは、より複雑なテーブル構造を使用する可能性があります。
- この例では、基本的な INSERT、SELECT、DROP 操作のみを使用しています。実際のアプリケーションでは、UPDATE、DELETE、およびその他の操作を使用する可能性があります。
- この例では、MySQL クライアントを使用してコマンドを実行しています。Percona Server を管理するには、MySQL Workbench などのグラフィカルツールを使用することもできます。
Percona Server で XtraDB と TokuDB を使用するその他の方法
Percona Server for MySQL オペレーターは、Kubernetes で Percona Server をデプロイおよび管理するためのオープンソースオペレーターです。オペレーターを使用して、XtraDB または TokuDB を使用するように Percona Server を構成できます。
Docker コンテナーを使用して、XtraDB または TokuDB を含む Percona Server をデプロイできます。
Ansible または Chef などの構成管理ツールを使用して、XtraDB または TokuDB を使用するように Percona Server を構成できます。
Percona Platform は、データベースのパフォーマンスと可用性を向上させるために設計された商用製品スイートです。Percona Platform には、XtraDB と TokuDB を含む Percona Server をデプロイおよび管理するためのツールが含まれています。
最適な方法を選択するには
- シンプルで使いやすい方法が必要な場合: Percona Server for MySQL オペレーターまたは Docker コンテナーを使用します。
- より多くの制御と柔軟性が必要な場合: Ansible または Chef などの構成管理ツールを使用します。
- エンタープライズ向けのサポートと機能が必要な場合: Percona Platform を使用します。
mysql mariadb percona