MyISAMとInnoDB

1160 ワード

MyISAMとInnoDB
MyISAM MyISAMB+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が全表
  • をスキャンする.