InnoDB引擎
优点
- 支持事物,ACID特性
- 实现了sql标准的四种隔离级别
- 支持行级锁和外键约束
- 可以利用事物日志进行数据恢复
- 锁级别为行锁,行锁优点是适用于高并发的频繁表修改,高并发是性能优于 MyISAM。缺点是系统消耗较大
- 索引不仅缓存自身,也缓存数据,相比 MyISAM 需要更大的内存
缺点
- 不支持FULLTEXT类型的索引,因为它没有保存表的行数,当使用COUNT统计时会扫描全表。
使用场景
- 需要事务的操作
- 更新数据需要使用行级锁
- 大数据量读写
- 大型互联网应用。
MyISAM引擎
MyISAM 是 MySQL 5.5.5 之前的默认引擎,它的设计目标是快速读取。
优点
- 高性能读取;
- 因为它保存了表的行数,当使用COUNT统计时不会扫描全表;
缺点
- 锁级别为表锁,表锁优点是开销小,加锁快;缺点是锁粒度大,发生锁冲动概率较高,容纳并发能力低,这个引擎适合查询为主的业务
- 此引擎不支持事务,也不支持外键
- INSERT和UPDATE操作需要锁定整个表;
- 它存储表的行数,于是SELECT COUNT(*) FROM TABLE时只需要直接读取已经保存好的值而不需要进行全表扫描。
MyISAM引擎适用场景
- 不需要事务的操作
- 插入、更新少,读取频繁
- 频繁的统计计算。