MySQL - ストレージエンジン
ナビゲーションに移動
検索に移動
概要
ストレージエンジンとは、RDBMSにおいてデータやトランザクションの管理を行う機能のことである。
MySQLでは、テーブルごとにストレージエンジンを指定することができる。
- データフォーマットの定義
- データ永続化
- インデックス管理
- トランザクション管理
- ロックおよび排他的制御
ストレージエンジン | 意味 |
---|---|
InnoDB | デフォルトのストレージエンジン。 行ロック、トランザクション、クラッシュリカバリ等に対応している。 |
MyISAM | 古いMySQLのデフォルトのストレージエンジン。 テーブルレベルのロックに対応している。 |
MEMORY | メモリ上にテーブルを配置する。 アクセス頻度の高いデータ向け。 |
Archive | データを自動的に圧縮する。 データの追加、参照のみ行うことができる。 主に、ログや監査向けで使用する。 |
NDB | MySQL Cluster構成にて使用される。 |
CSV | CSV形式でデータを保存および使用する。 |
Blackhole | /dev/nullのように書き込んだデータを破棄する。 |
ストレージエンジンの操作
利用可能なストレージエンジンの確認
SHOW ENGINES;
ストレージエンジンを指定してテーブルの作成
USE <データベース名>;
CREATE TABLE <テーブル名> (
<カラム名 1> <型名>
<カラム名 2> <型名>
<カラム名 3> <型名>
-- ...略
)
ENGINE = <ストレージエンジン名>;
既存テーブルのストレージエンジン確認
USE <データベース名>;
SHOW TABLE STATUS
where name = '<テーブル名>' \G;
既存テーブルのストレージエンジンの変更
USE <データベース名>;
ALTER TABLE <テーブル名> ENGINE = '<ストレージエンジン名>';
-- 例: sample_tableテーブルのストレージエンジンをMEMORYに変更する
ALTER TABLE sample_table ENGINE = 'MEMORY';