一、简介
数据库引擎是用于存储、处理和保护数据的核心服务。其实就是数据库如何执行运作的管理方式。
InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。
二、MyISAM
1、适用场景
用于管理非事务表,提供高速检索及全文检索能力,适用于有大量的select操作的表,如日志表。
2、优点
- MyISAM表是独立于操作系统的,这说明可以轻松地将其从Windows服务器移植到Linux服务器。
- MyISAM存储引擎在查询大量数据时非常迅速,这是它最突出的优点。
- 另外进行大批量插入操作时执行速度也比较快。
3、缺点
- MyISAM表没有提供对数据库事务的支持。
- 不支持行级锁和外键。
- 不适合用于经常更新的表,效率低。
三、InnoDB
1、适用场景
用于事务处理,具有ACID事物支持,应用于执行大量的insert和update操作的表。
2、优点
- 提供事务支持。
- 提供系统崩溃修复能力。
- 支持多版本并发控制的行级锁,由于锁粒度小,写操作和更新操作并发高、速度快。适合更新频繁的表。
- 支持自增长列。
- 支持外键。
- 适合于大容量数据库系统,支持自动灾难恢复。
3、缺点
InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比Myisam的存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。