1
/
5

【MySQL】MyISAM と InnoDBの違いについてのお話

みなさん、こんにちは
今日はMyISAM と InnoDBの違いについて話していこうと思います。

ストレージエンジンについて

みなさんはストレージエンジンについてご存知でしょうか??ストレージエンジンとは、テーブルにデータを書き込んだり読み出したりする部分を担っているプログラムのことで、代表的なストレージエンジンにはMyISAM と InnoDBというものがあります。

MyISAM と InnoDBのメリットデメリット

MyISAM

メリット -> シンプル、高速に動作、フルテキスト検索に対応、大容量テーブルに向いている。

デメリット -> トランザクションや外部キー制約をサポートしない、REPAIR TABLEで修正できることが多いがクラッシュ時に使えなくなる、テーブルレベルでロックをかけるという点でロックの粒度が荒い(他人がデータを更新している間はそのテーブルにアクセスができなくなる)

InnoDB

メリット -> トランザクションをサポート、外部キー制約が装備されている、クラッシュ時のリカバリに対応、列レベルでロックを実施

デメリット -> フルテキスト検索ができない、パフォーマンスが悪い

複数人で一つのテーブルに更新をかける場合や整合性を求められる場合はInnoDB、logデータなどすぐに参照しなかったり、大容量のものはMyISAMのストレージエンジンが向いてる感じですかね。

ちなみにテーブル毎にストレージエンジンが選択できるようになっています。

何もなければInnoDBにしておくのが無難ではないでしょうか??

株式会社フジボウル's job postings
8 Likes
8 Likes

Weekly ranking

Show other rankings