« Xdebugを使ってみた | トップページ | 最近の画面解像度 »

2008年10月 7日 (火)

MySQL4のストレージエンジン

なにかと利用しているMySQL。
重要なストレージエンジンについてメモ。

[1] MyISAM

    デフォルトのストレージエンジン。IBMが開発したISAMモデルの拡張版。
  MyISAMのテーブルは3つの異なったファイルで構成されている。
  ・ frmファイル:テーブルの定義が格納
  ・ MYDファイル:未加工のデータが格納
    ・ MYIファイル:インデックスが格納

 ●特徴
  読み込みが非常に速く、書き込みも非常に速い。
  しかし、読み書きを同時にはできない。
  テーブルレベルのロッキングを使用。
  書き込みの並列性の最高レベルは低い。
  トランザクションはサポートしない。
 ●有用な機能
  FULLTEXTというインデックス型が利用できる。

[2] InnoDB
 トランザクションをサポート。ACID準拠(アシッドと呼ぶ)。
  ACIDとは以下の略。
   ・Atomicity(原子性):処理を全て実行するか全く実行しない状態に制御する
  ・Consistency(一貫性):異常時にもアトミック実行を保証し正しい状態を維持する
  ・Isolation(独立性):他のトランザクションの処理中の状態が参照できないよう分離する
  ・Durability(永続性):成功したトランザクションの結果だけが永久化される

  ●特徴
  ロックが、MVCC(Multi-Versioned Concurrency Control マルチバージョン並行処理制)により実行されるため、読み込みをまったくブロックすることなく行レベルのロッキングを素早く行うことができる。つまり、テーブルに書き込みが行われている間でも、そのテーブルからの読み込みを続けることができる。(並列性
また、テーブルの複数の部分に書き込みを行ってもお互いにブロックしあうことがない。
 InnoDBのテーブルの行データはディスク上で基本キーによって順序付けされているので、データをはるかに高速に基本キーの順序で連続して読み出せる。

 ●弱点
  MyISAMに比較して、スペースが3倍ほどになる。FULLTEXTインデックスが使えない。

[3] ヒープ
   別名メモリテーブル型。データをすべてメモリに保存。サーバを再起動するとヒープテーブルは空になる。スキーマ(定義)はディスクに保存される。

 ●特徴
  書き込みが高速であるため、並列性が高く、非常に高速。
  リアルタイムのイベントの待機など処理時間に厳しい制約がかかるデータに適している。

 ●弱点
  再起動の際にデータが失われてもかまわないという条件がつく。
  データベースのサイズはメモリに収まるものでないといけない。

« Xdebugを使ってみた | トップページ | 最近の画面解像度 »

03 アプリケーション」カテゴリの記事