一个数据库可以包含多个引擎,在建表的时候可以指定该表使用的引擎;ENGINE=InnoDB
各种引擎的特点:
一、InnoDB
设计目的就是为了处理大容量的数据库系统,它本身是基于mysql后台的完整的数据库系统,提供了 缓存池 缓存索引和数据
1、支持事务,可以通过事务日志,进行故障恢复。
2、实现了sql标准的四种事务隔离级别
3、支持行级锁,应为锁的粒度比较小,写操作不会锁定全表,因而在并发量高的时候,可以提高效率。但行级锁也不是绝对的,当sql语句无法确定扫描范围的时候,也会锁定全表。
4、没有缓存行数,count(*)会扫描全表
5、不支持FullText类型的索引。
二、MySIAM
1、不支持行级锁,在执行insert语句和update语句的操作的时候会锁定全表,因为效率会低一些。
2、不支持事务
3、保存了行数,count(*)直接读取内存。
4、不要求必须有主键。
以上两种引擎使用的都是B+Tree的数据结构,但对于索引的存储上存在一些差异。聚簇索引和非聚簇索引