文章目录
Innodb 和mylsam存储引擎的主要区别
1 是否支持行级锁 : MyISAM 只有表级锁 (table-level locking),而InnoDB支持行级锁(row-level locking) 和表级锁, 默认为行级锁。
2 是否支持事务和崩溃后的安全恢复: MyISAM 强调的是性能,每次查询具有原子性,其执行速度比 InnoDB 类型更快,但是不提供事务支持。但是InnoDB 提供事务支持事务,外部键等高级数据库功能。具有事务 (commit)、回滚(rollback) 和崩溃修复能力的事务安全(transaction-safe (ACIDcompliant))型表。
3 是否支持外键:MyISAM不支持,而InnoDB支持。
4 是否支持 MVCC:仅 InnoDB 支持。应对高并发事务, MVCC 比单纯的加锁更高效;MVCC只在 READ COMMITTED 和 REPEATABLE READ 两个隔离级别下工作;MVCC可以使用乐观(optimistic) 锁和悲观 (pessimistic) 锁来实现; 各数据库中MVCC实现并不统一。