【MySQL】ストレージエンジン一覧

昔MySQLを使っている時、ストレージエンジンを調べたことがあったのでまとめてみました。もしかしたら情報が古いかもしれませんが、更新されている部分あれば別途修正したいと思います。

 

ストレージエンジン一覧

・Aria

AriaストレージエンジンはMyISAMストレージエンジンの後継にあたるもので、耐障害性の向上と複雑なクエリの高速処理の実現といった特徴があります。現時点ではトランザクションに対応していません。
既にMyISAMでは対応できなかったクラッシュセーフが実装されており、障害発生時に自動でリカバリ処理を行ってくれます。


・PERFORMANCE_SCHEMA

統計情報を蓄えるためのデータベース。DTraceのように観測点をmysqldの内部に埋め込んで情報を収集するというものですが、DTraceと違ってLinuxやWindowsなど、どのOSでも利用可能です。観測点は予めソースコードに組み込まれたところに限られるので、DTraceのSDT(Statically Defined Tracing)プロバイダに近いです。DTraceでは観測点のことをProbeと呼んでいますが、PERFORMANCE_SCHEMAではInstrumentという名称になっています。
PERFORMANCE_SCHEMAはテーブルの実態は存在していますが、PERFORMANCE_SCHEMA用のテーブルは予め定義が決まっており、mysql_install_dbコマンドを実行時に作成されます。MySQL 5.1からアップグレードした場合には、mysql_upgradeコマンドを実行するとテーブルが作成されます。テーブルが作成されていてもデフォルトではPERFORMANCE_SCHEMAは有効になっておらず、有効にするにはmy.cnfでオプションを設定する必要があります。


・MyISAM

デフォルトのMySQLストレージエンジンと、ウェブ、データウェアハウス、そしてその他のアプリケーション環境で一番利用されるストレージエンジンです。MyISAMは全てのMySQLコンフィギュレーションの中でサポートされています。そして、MySQLに他のストレージエンジンを設定しない限り、これがデフォルトとして利用されます。


・MRG_MYISAM

複数のテーブルをマージしたテーブル。複数のテーブルをまとめて、仮想的に一つのテーブルとして扱うことができるという便利なテーブル型です。


・InnoDB

トランザクションプロセスアプリケーションに利用され、ACIDトランザクションサポートや外部キーなどを含む、複数の特徴をサポートします。InnoDBは全てのMySQL 5.1 バイナリディストリビューションの中にデフォルトとして含まれています。ソースディストリビューションの中では、好きなようにMySQLを設定する事によって、エンジンを有効にも無効にもできます。


・CSV

コンマ区切りの値を使ったフォーマットでデータをテキストファイルに保存します。CSV エンジンは、 CSVフォーマットにインポート・エクスポートする事ができる他のソフトやアプリケーション間でデータを簡単に交換する為に利用する事ができます。
※オートインクリメントのカラムを作れない。主キー指定できない。nullは許されない。インデックス作れない?


・Memory

参照事項や迅速なデータ検索を必要とする環境で、きわめて高速なアクセスで全てのデータをRAMの中に格納します。このエンジンは以前は HEAPエンジンとして知られていました。
※サーバのクラッシュや、サーバ・DBの再起動でテータはすべて消える。テーブル自体は残る

 

その他

・Federated

Federatedエンジンではリモートサーバ上のテーブルが、あたかもローカルサーバ上のデータベース内に存在するかのように振舞います。そのためFedertedストレージエンジンのあるDBにテーブルを作ってもそのDBには作られず、連携先のDBにテーブルが作られます。いくつもの物理的サーバーから、別々のMySQLサーバーをリンクさせて1つの論理データベースとして利用することも可能。 分散、またはデータマート環境に大変効果的です。
※トランザクション、ALTER TABLE、DROP TABLE、クエリーキャッシュはサポートしない


・Archive

Archiveエンジンで保存されたデータは圧縮ファイルで保存されます。利用する場面としては、ほとんど参照されないが容量の大きい履歴の保存や、アーカイブ、セキュリティ監査情報を格納/検索するケースが最適です。
※INSERT文とSELECT文のみ実行可能です。DELETE文やUPDATE文はできない。インデックスはサポートしていない


・Merge

MySQL DBAや開発者が、一連の同一 MyISAMテーブルを論理的にグループ化し、それらを1つのオブジェクトとして参照付ける事を可能にします。 VLDB データウェアハウスと同じで、VLDBに効果的です。


・NDB

高い検索機能と、できるだけ長い稼働時間を必要とするアプリケーションにぴったりな、クラスタ化されたデータベースエンジンです。


・Blackhole

ブラックホールストレージエンジンはデータの受け入れはしますが、格納はせず、検索しても結果は得られません。 この機能性は、データが自動的に複製される分散型のデータベースデザインの中で利用できますが、局所的に格納はされません。??? 正直、個人的にデータを作成できないし、検索できないため使う用途が分からない。


・Example

このストレージエンジンは 「スタブ」エンジンで実装されており、何の機能も持ちません。このエンジンを利用してテーブルを作成できますが、データの格納も検索もできません。このエンジンの目的は、MySQL ソースコードの中で新しいストレージエンジンを作成する方法を説明する為の、見本の役割を果たす事です。それ自体は、ソフトウェア開発者向のものです。
※EXAMPLE,Archive,BLACKHOLE,FEDERATEDのストレージ利用するにはmysqlインストール時にconfigureコマンドを呼び出す必要がある

 

お役立ちメモ

・アーガイブストレージエンジンが有効か無効か

show variables like 'have_archive';


・サポートしているエンジンの一覧

SHOW VARIABLES LIKE 'have%';

 

 



投稿日:2018-08-02    更新日:2018-09-06

[スポンサーリンク]

  
サイト内検索
プロフィール

プロフィール

[Name : じゃぶじゃぶ(@jbjb_2019)]
都内で社内SEをしているおじさん。
仕事で得られる知識だけでは限界を感じ、 WEBの勉強がてらITブログを開始。
サーバからWEBサイトまでフルスクラッチで開発しました。
現在は勉強のモチベーションを保つために活用中。
興味があることを雑記的に書いていきます。

[スポンサーリンク]

[スポンサードリンク]

最近の記事