INNODB和MYISAM之间的主要区别

阿里云-轻量应用服务器

MySQL中最常用的存储引擎是MyISAM和InnoDB。

使用这些存储引擎,根据应用需求存在一些优点和缺点。

众所周知,从MySQL-5.5.5开始,MySQL数据库选择的默认存储引擎是InnoDB。

MySQL :: MySQL 5.5 Reference Manual :: 15.1 Setting the Storage Engine

The default engine is InnoDB as of MySQL 5.5.5 (MyISAM before 5.5.5).

MyISAM和INNODB之间的主要区别是:

  • InnoDB支持时,MyISAM不支持表的事务。
  • 在MyISAM中不存在行级锁定,关系完整性,但是使用InnoDB这是可能的。MyISAM具有表级锁定。
  • 在MyISAM支持时,InnoDB不支持FULLTEXT索引。
  • 与InnoDB中的表相比,MyISAM表的性能速度要高得多。
  • 当你处理更大的数据库时,InnoDB是更好的选择,因为它支持事务,量,而MyISAM适用于小项目。
  • 由于InnoDB支持行级锁定,因此与MyISAM相比,插入和更新速度更快。
  • InnoDB支持ACID(原子性,一致性,隔离性和持久性)属性,而MyISAM不支持。
  • 在InnoDB表中,AUTO_INCREMENT字段是索引的一部分。
  • 一旦InnoDB中的表被删除,它就无法重新建立。
  • InnoDB不会将数据保存为表级别,因此从表中执行select count(*)将再次扫描整个表以计算行数,而MyISAM将数据保存为表级别,以便您可以轻松读出保存的行号。
  • InnoDB支持时,MyISAM不支持FOREIGN-KEY参照完整性约束。


关注微信公众号

码中人 微信公众号