当前位置: 首页 > 图灵资讯 > 技术篇> MyISAM和InnoDB区别

MyISAM和InnoDB区别

来源:图灵教育
时间:2023-07-06 15:41:03

MyISAM是MySQL的默认数据库引擎。MyISAM虽然性能优异,提供了全文索引、压缩、空间函数等诸多特点,但不支持事务和行级锁,最大的缺点是崩溃后无法安全恢复。,5.5版本后,MySQL引入InnoDB(事务性数据库引擎),MySQL 5.5版本后默认存储引擎为InnoDB。

大多数时候使用InnoDB存储引擎,但在某些情况下使用MyISAM也是合适的,比如密集阅读。

两者的对比:

1.是否支持行级锁:MyISAM只有表级锁(table-level locking),InnnoDB支持行级锁(row-level locking)和表级锁,默认为行级锁。

2.崩溃后是否支持事务和安全恢复:MyISAM强调性能,每次查询都是原子性的,执行速度比InnoDB快,但不提供事务支持。但InnnoDB提供高级数据库功能,如事务支持、外部键等。具有事务(commit)、回滚(rollback)以及崩溃修复能力(crash recovery capabilities)的事务安全(transaction-safe(ACID compliant))型表。

3.是否支持外键:MyISAM不支持,InnoDB支持。

4.是否支持MVCCCC:只有InnoDB支持。MVCC比简单的加锁更有效地处理高并发事务;MVCC只在READ COMMITEDREPEATABLE 两个隔离级别的TRAD工作;MVC可以使用乐观锁(optimistic)和悲观锁(pessimistic)锁来实现;MVCC在各种数据库中的实现并不统一。

上一篇:

并发事务的问题

下一篇:

接口隔离原则