MySQL ストレートエンジンの種類

2013/07/18

MySQLで使用できるストレートエンジンのまとめ

ストレートエンジンとは

ストレートエンジンとはデータへアクセスする主な機能の部分のことを指します。
MySQLの最大の特徴は、このストレートエンジンをテーブル単位で設定できることです。

MySQLは非常に多くのストレージエンジンの種類があります。
その種類によって特長は異なります。

代表的なものは、MyISAMとInnoDBです。
ちなみにですが、マイアイサムとイノディービィーと読みます。
MyISAM はデフォルトで使用されるストレートエンジンです。

エンジンの設定方法

テーブル作成時にENGINEを指定することで設定します。
テーブル作成時にCREATE TABLEステートメントに加えることで、どのストレージエンジンを使用するのか指定します。

CREATE TABLE t (i INT) ENGINE = INNODB;

上記のように指定するとINNODBが設定されます。
デフォルトでは、MyISAMが設定されますが、--default-storage-engine または --default-table-type サーバー始動オプションを利用するか、my.cnf で default-storage-engine か default-table-type オプション を設定する事で変更することができます。

エンジンの種類

MyISAM

先ほども言いましたが、通常デフォルトとなるストレートエンジンです。
テーブル単位のファイル構造を持っています。
トランザクション処理はサポートされていませんが、高速に動作します。

INNODB

INNODBの一番の特徴は、外部キーの制約やトランザクション処理がサポートされていることです。
また、クラッシュ時にリカバリが可能です。
動作の方はMyISAMに比べて遅くなります。

その他のストレージエンジン

MERGE
複数のテーブルを仮想的に一つに見せるストレージエンジンです。
大容量のデータを扱う場合に適しています。

MEMORY(HEAP)
高速に検索を行うことができます。
インメモリのため、MySQLを再起動するとデータは消えてしまいます。

EXAMPLE
ストレートエンジンを作成する人向けのテンプレートです。

FEDERATED
MySQL5.0から提供された最新のストレートエンジンです。
他のMySQLサーバーと連携して動作します。

ARCHIVE
データが圧縮されて保存されるため、小さい容量で大量のデータを保存することができます。
INSERTとSELECTのみサポートされていて、UPDATEやDELETEは使用できません。

CSV
データがカンマ区切りで保存されます。

BLACKHOLE
内部的に処理を行わないストレートエンジンです。
そのためサーバーからの応答はとても速くなります。

Related

Vagrant+Docker+PHP環境で「session.save_path」指定時に、セッションファイルが空になるエラー

ファイル共有でのフォルダの所有者を設定 結論 PHP5.4.28 からセッションファイルのownerはrootもしくはWebサーバのユーザに限るという制限が...

LINEと連携したテイクアウト事前注文システム徹底比較!

目次 テイクアウト予約・注文受付システムのトレンド LINEと連携したテイクアウト事前注文システムの価格表 L.B.B.Cloud テイクイーツ ...

PHPで動画の撮影日を取得

PHPで動画の撮影日を取得 概要 PHPからffprobeコマンドを実行し、動画の撮影日時を取得します。 コード $posted_at = ...

FullCalendarでGoogleカレンダーのようなUIを実装

jQueryプラグインFullCalendarのサンプル 概要 FullCalendarを使用して、GoogleカレンダーのようなUIを実装する使用例を...

PHP Laravel5.2でmulti-auth(複数テーブルでの認証)を実装

Laravel5.2でマルチ認証 概要 LaravelとはPHPの中で今最も伸びているフレームワークです。 処理速度が遅いなどありますが、かなり使い安く拡...

PHP 正規表現でIPアドレス形式の文字列か判定

正規表現でIPアドレスの入力チェック 概要 フォームで入力されたIPアドレスが正当な文字列か判定するためのバリデーション処理を実装します。 基本的...
トップへ戻る