简介
MySQL 有多种存储引擎,每种存储引擎有各自的优缺点,可以择优选择使用。引擎有:
MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE。
MyISAM和InnoDB对比
区别项 | InnoDB | MyISAM |
MyISAM占优势的项 | ||
全文索引 | 不支持 | 支持 |
InnoDB占优势的项 | ||
事务 | 支持。 每条SQL语言都默认封装成事务,自动提交。最好把多条SQL语言放在begin和commit之间,组成一个事务 | 不支持 |
外键 | 支持。 将拥有外键的InnoDB表转成MyISAM会失败报错 | 不支持 |
锁 | 表级锁、行级锁(默认)。 行锁实现在索引上,不是锁在物理行记录上。若访问没有命中索引,行锁退化为表锁。 | 表级锁 并发量低。 |
崩溃恢复 | 支持 | 不支持 |
其他 | ||
使用场景 | 并发高或需要事务的地方。 | 读操作远远超过写操作,且不需要事务的地方。 |