MySQLのストレージエンジンについて【後編】
InnoDBエンジン
InnoDBはMySQL5.5以降でののデフルトのストレージエンジンになっています。
InnoDBの特徴は以下になります。
- ロック粒度が対象のレコード(行)
- トランザクションをサポート
InnoDBのロック粒度は対象のレコードに対してのみロックを行います。
なので、同じテーブルであっても異なるレコードであれば同時にリクエストの処理が可能となっています。
またトランザクションをサポートいるといった特徴があります。
MyISAMエンジン
MyISAMはMySQL5.5より前まではデフルトのストレージエンジンでした。(現在はInnoDB)
MyISAMの特徴は以下になります。
- ロック粒度が対象のテーブル
- トランザクションをサポートなし
MyISAMのロック粒度はテーブル単位なのでInnoDBとは違い同じテーブルのクエリ(レコードは異なる)を同時に実行することができません。
そのかわりにPCの負荷はMyISAMのほうが小さいようです。
またトランザクションをサポートしていないため複数の作業をまとめたい場合などはMyISAMよりInnoDBを用いたほうがよいようです。
MyISAMの使用はトランザクショナルでもクラッシュセーフでもない場合で読み取り専用のデータが必要な場合、あるいはテーブルがそれほど大きくなく修復が大変でない場合に検討してみるとよいでしょう。