[MySQL] ストレージエンジンに関するメモ

ストレージエンジンとは

  • 実データへのアクセス処理を主に行う機能部分
  • 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/