ストレージエンジンとは
- 実データへのアクセス処理を主に行う機能部分
- MySQLではストレージエンジン部分がモジュール化されたアーキテクチャを採用
- MySQLのストレージエンジンはテーブル単位で指定できる
ストレージエンジンの種類
- MyISAM – MySQL標準のストレージエンジンとして使用される
- InnoDB – 行ロックとトランザクションをサポートする
- Memory – メモリ上にテーブルを配置する
- Merge – 複数のMyISAMテーブルを統合する
- Archive – 圧縮したデータベースを使用する
- Federated – リモートのデータベースを参照する
- NDB – クラスター構成にて使用される
- CSV – データファイルにCSVを使用する
- Blackhole – ダミーテーブルを使用する
MyIASM vs InnoDB
MyISAM
- MySQL 5.5以前のデフォルト
- テーブル単位でロック
- トランザクション機能を持たない
- 全文検索機能(FULLTEXTインデックス)がある
- クラッシュセーフではない (壊れやすい?)
InnoDB
- MySQL 5.5以後のデフォルト
- レコード単位でロック
- トランザクション機能を持つ
- 全文検索機能がない
- クラッシュセーフ (壊れにくい?)
いまどきのシステムならInnoDBを使ったほうが有利かも。
参考サイト
[ThinkIT] 第1回:MySQLストレージエンジンの概要 (1/3)
http://thinkit.co.jp/free/article/0608/1/1/
[ThinkIT] 第2回:MyISAMとInnoDB (1/3)
http://thinkit.co.jp/free/article/0608/1/2/
MySQLの「InnoDB」と「MyISAM」についての易しめな違い – Programming log – Shindo200
http://shindolog.hatenablog.com/entry/2015/04/01/185703
Open database life: MyISAMとInnoDBのどちらを使うべきか
http://opendatabaselife.blogspot.com/2009/10/myisaminnodb.html
漢(オトコ)のコンピュータ道: MyISAMからInnoDBへ切り替えるときの注意点
http://nippondanji.blogspot.com/2009/02/myisaminnodb.html
運用視点なMyISAMとInnoDBと。 | LexTech
http://tech.lexues.co.jp/archives/1405
MySQLによるデータウェアハウス構築 – Yahoo! JAPAN Tech Blog
http://techblog.yahoo.co.jp/web/auctions/mysql/