デフォルトストレージエンジンに関する設定を記述する
MariaDB では複数のストレージエンジンをサポートしています。ストレージエンジンとはテーブルにデータを書き込んだり読み出したりする部分を担っているプログラムのことで、現在の MariaDB ではデフォルトのストレージエンジンは InnoDB になっています。ここでは MariaDB で用意されているストレージエンジンの一覧を確認し、デフォルトで使用されるストレージエンジンに関する設定を記述する方法について解説します。
(Last modified: )
MariaDBで利用可能なストレージエンジンの一覧
MariaDB で利用可能なストレージエンジンの一覧を確認します。 MariaDB コマンドラインツールを起動してください。
次のようにコマンドを実行してください。
show engines;
Engine | Support | Comment | Transactions | XA | Savepoints |
---|---|---|---|---|---|
CSV | YES | Stores tables as CSV files | NO | NO | NO |
MRG_MyISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
Aria | YES | Crash-safe tables with MyISAM heritage. Used for internal temporary tables and privilege tables | NO | NO | NO |
MyISAM | YES | Non-transactional engine with good performance and small data footprint | NO | NO | NO |
SEQUENCE | YES | Generated tables filled with sequential values | YES | NO | YES |
InnoDB | DEFAULT | Supports transactions, row-level locking, foreign keys and encryption for tables | YES | YES | YES |
PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
以前はデフォルトのストレージエンジンとして MyISAM が使用されていましたが、現在は InnoDB がデフォルトのストレージエンジンです。
デフォルトのストレージエンジンが使用されるか確認する
MariaDB のデフォルトのストレージエンジンについては設定ファイルである my.ini ファイルで設定します。 [mariadbd] グループで default-storage-engine に対して値を設定します。
[mariadbd] default-storage-engine=デフォルトストレージエンジン
現在 my.ini ファイルではこの設定項目について設定はされていません。そのため、デフォルトのストレージエンジンは InnoDB が使用されます。
[mariadbd] datadir=C:/Program Files/MariaDB 10.6/data port=3306 innodb_buffer_pool_size=2035M character-set-server=utf8mb4
テーブルを作成するときに明示的に使用するストレージエンジンを指定した場合はそのストレージエンジンが使用されますが、明示的に指定しなかった場合はデフォルトのストレージエンジンが使用されます。それでは実際にテスト用のデータベースをまず作成したあとで、実際にテーブルを作成してストレージエンジンが何になっているのかを確認してみます。
まずテスト用のデータベースを作成し、作成したデータベースに変更します。
create database mytest; use mytest;
次にストレージエンジンを指定せずにテーブルを作成します。
create table test1(id int);
作成したテーブルのストレージエンジンを確認します。
show table status from mytest like 'test1'\G
Engine の値が InnoDB に設定されていることが確認できました。
ストレージエンジンを指定してテーブルを作成する
なおストレージエンジンを明示的に指定してテーブルを作成するには次のように記述します。下記ではストレージエンジンとして MyISAM を指定しています。
create table test2(id int) engine MyISAM;
作成したテーブルのストレージエンジンを確認します。
show table status from mytest like 'test2'\G
Engine の値が MyISAM に設定されていることが確認できました。
デフォルトのストレージエンジンを変更する
それでは my.ini に設定を追加してデフォルトのストレージエンジンを変更します。 my.ini ファイルの [mariadbd] グループの中に default-storage-engine=MyISAM を追加してください。
[mariadbd]
datadir=C:/Program Files/MariaDB 10.6/data
port=3306
innodb_buffer_pool_size=2035M
character-set-server=utf8mb4
default-storage-engine=MyISAM
設定ファイルを保存し、 MariaDB サーバを再起動してください。これで設定変更は完了です。
それではストレージエンジンを指定せずにテーブルを作成します。
create table test3(id int);
作成したテーブルのストレージエンジンを確認します。
show table status from mytest like 'test3'\G
Engine の値が MyISAM に設定されていることが確認できました。このようにデフォルトのストレージエンジンが MyISAM に変更されていることが確認できました。
-- --
MariaDB で用意されているストレージエンジンの一覧を確認し、デフォルトで使用されるストレージエンジンに関する設定を記述する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
プログラミングや開発環境構築の解説サイトを運営しています。