Shoeisha Technology Media

EnterpriseZine(エンタープライズジン)

EnterpriseZine(エンタープライズジン)

テーマ別に探す

第12回 MySQL事始 ストレージエンジン(3) 各種のストレージエンジン

edited by DB Online   2012/05/09 00:00

今回はMySQLのストレージのうち、第11回でご紹介したInnoDB以外のストレージエンジンをご紹介いたします。

InnoDBを含む代表的なストレージエンジンの主な特徴

 InnoDBを含む代表的なストレージエンジンの主な特徴は以下の通りです。

機能 InnoDB MyISAM Memory Archive NDB
上限サイズ 64TB 256TB メモリサイズに依存 上限なし 384EB
トランザクション Yes No No No Yes
ロックの粒度
MVCC Yes No No No No
地理空間(Geospatial)
データ型
Yes Yes No Yes Yes
地理空間(Geospatial)
インデックス
No Yes No No No
Bツリーインデックス Yes Yes Yes No Yes
ハッシュインデックス No No Yes No Yes
全文検索インデックス No Yes No No No
クラスタインデックス Yes No No No No
データ圧縮 Yes Yes
(読み取り専用)
No Yes No
分散型クラスタ
データベース
No No No No Yes
外部キー Yes No No No No

MyISAM

 MyISAMはMySQL 5.1以前のデフォルトのストレージエンジンでした。MyISAMは非常にシンプルで軽量なストレージエンジンです。シンプルな構造ゆえに参照処理の性能が高く、またファイルをOSのコピーコマンドだけでテーブルを他のMySQLサーバなどにコピー出来る高い可搬性を持っています。

 ただしここ最近のアプリケーションではInnoDBの利用が主流となり、MyISAMの利用は減っています。MyISAMはトランザクションに対応しておらず、更新処理の際はテーブルレベルロック(InnoDBは行レベルロック)のため同時実行性に大きな制約があります。さらにデータ変更中にMySQLサーバが停止してしまった場合に簡単にデータファイルが破損し、自動復旧の方法が無いことなども理由となっています。次世代のMySQL 5.6では、全文検索やGISインデックス(座標や地形情報データを格納したデータに対するインデックス)などMyISAMのみが持っている機能は全てInnoDBに実装する予定とされています。

 MyISAMストレージエンジンを使用したテーブルには通常3個のファイルが作成されます。それぞれのファイル名はテーブル名と同じになります。

ファイルの内容 拡張子
テーブル定義 .frm
データ .MYD
インデックス .MYI

 なお.frmファイルはどのストレージエンジンを利用した場合でも必ず作成されます。また、MyISAMのデータファイルは圧縮可能ですが、圧縮した場合は読み取り専用となり、データの変更は出来ません。圧縮にはmyisampackコマンドを使用します。このmyisampackコマンドはMySQLサーバを介さずに直接データファイルの変更を行うため、必ずMySQLサーバをシャットダウンした状態で実行する必要があります。


著者プロフィール

  • 梶山隆輔(カジヤマリュウスケ)

    日本オラクル株式会社 MySQL Global Business Unit Asia Pacific & Japan担当 MySQL Principal Sales Consultant オラクル社において、MySQLのお客様環境への導入支援や製品の技術解説を担当するセールスコンサルタントチームのアジア太平洋地域リーダー。多国籍なMySQL部門にて、台湾、オーストラリア、インドに在籍するチームメンバーを束ね、アジア太平洋地域の25以上の国や地域でのMySQL普及やビジネスの拡大をミッションとする。  

バックナンバー

連載:MySQL事始

もっと読む

All contents copyright © 2007-2020 Shoeisha Co., Ltd. All rights reserved. ver.1.5