デフォルトストレージエンジンに関する設定を記述する

MariaDB では複数のストレージエンジンをサポートしています。ストレージエンジンとはテーブルにデータを書き込んだり読み出したりする部分を担っているプログラムのことで、現在の MariaDB ではデフォルトのストレージエンジンは InnoDB になっています。ここでは MariaDB で用意されているストレージエンジンの一覧を確認し、デフォルトで使用されるストレージエンジンに関する設定を記述する方法について解説します。

(Last modified: )

MariaDBで利用可能なストレージエンジンの一覧

MariaDB で利用可能なストレージエンジンの一覧を確認します。 MariaDB コマンドラインツールを起動してください。

MariaDBで利用可能なストレージエンジンの一覧(1)

次のようにコマンドを実行してください。

show engines;

MySQLで利用可能なストレージエンジンの一覧(2)

EngineSupportCommentTransactionsXASavepoints
CSVYESStores tables as CSV filesNONONO
MRG_MyISAMYESCollection of identical MyISAM tablesNONONO
MEMORYYESHash based, stored in memory, useful for temporary tablesNONONO
AriaYESCrash-safe tables with MyISAM heritage. Used for internal temporary tables and privilege tablesNONONO
MyISAMYESNon-transactional engine with good performance and small data footprintNONONO
SEQUENCEYESGenerated tables filled with sequential valuesYESNOYES
InnoDBDEFAULTSupports transactions, row-level locking, foreign keys and encryption for tablesYESYESYES
PERFORMANCE_SCHEMAYESPerformance SchemaNONONO

以前はデフォルトのストレージエンジンとして 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;

デフォルトのストレージエンジンが使用されるか確認する(1)

次にストレージエンジンを指定せずにテーブルを作成します。

create table test1(id int);

デフォルトのストレージエンジンが使用されるか確認する(2)

作成したテーブルのストレージエンジンを確認します。

show table status from mytest like 'test1'\G

デフォルトのストレージエンジンが使用されるか確認する(3)

Engine の値が InnoDB に設定されていることが確認できました。

ストレージエンジンを指定してテーブルを作成する

なおストレージエンジンを明示的に指定してテーブルを作成するには次のように記述します。下記ではストレージエンジンとして MyISAM を指定しています。

create table test2(id int) engine MyISAM;

デフォルトのストレージエンジンが使用されるか確認する(4)

作成したテーブルのストレージエンジンを確認します。

show table status from mytest like 'test2'\G

デフォルトのストレージエンジンが使用されるか確認する(5)

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);

デフォルトのストレージエンジンを変更する(1)

作成したテーブルのストレージエンジンを確認します。

show table status from mytest like 'test3'\G

デフォルトのストレージエンジンを変更する(2)

Engine の値が MyISAM に設定されていることが確認できました。このようにデフォルトのストレージエンジンが MyISAM に変更されていることが確認できました。

-- --

MariaDB で用意されているストレージエンジンの一覧を確認し、デフォルトで使用されるストレージエンジンに関する設定を記述する方法について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。