MyISAMとInnoDB
1160 ワード
MyISAMとInnoDB
MyISAM
InnoDB
参考:http://stackoverflow.com/questions/15678406/when-to-use-myisam-and-innodb
違いますリーフノードデータ格納の違い、ポインタと完全データ トランザクションおよび外部キー がサポートされているかどうか設計の違いは、読み取り密集に適しているか、書き込み密集に適しているか ロックの違い、表ロックと行ロック( .全文インデックス をサポートするかどうか をスキャンする.
MyISAM
MyISAM
はB+tree
をインデックス構造として使用し、リーフノードは
を格納する.MyISAM
では、トランザクションおよび外部キーはサポートされていません.MyISAM
はテーブルロックであり、データベースの書き込み操作時にテーブル全体をロックし、効率が低い.MyISAM
は全文インデックスをサポートします.MyISAM
は設計構造が簡単で、read
の表に適しています.MyISAM
はインデックス圧縮をサポートし、より多くのインデックスをロードできます.InnoDB
InnoDB
は同様にB+tree
をインデックス構造として使用するが、リーフノードは
を格納する.InnoDB
は、障害が発生した場合にトランザクション・ログからデータベースに返信できるトランザクションと外部キーをサポートします.InnoDB
は行ロックであり、1行のデータのみがロックされているため、書き込み操作が速い.InnoDB
は全文インデックスをサポートしていません.InnoDB
は、write update
(行レベルロックのため)の性能に優れている.参考:http://stackoverflow.com/questions/15678406/when-to-use-myisam-and-innodb
違います
InnoDB
がスキャン範囲を特定できない場合、全表ロックが必要)select count(*)
の違いは、MyISAM
が行数(where
であれば全表をスキャン)を保存し、InnoDB
が全表