Mysql 的两种引擎

mysql 的数据存储主要存在两种引擎,即:MyISAM 和 InnoDb,我们常用的为 InnoDb,那么两种存在哪些差异和优缺点呢?

MyISAM 存储引擎

1、不支持事务,每次查询操作都是原子级别的

2、支持表级锁,即每次操作都是对整个表进行加锁操作

3、存储表的总行数

4、一张表包含三个文件:索引文件、表结构文件、表数据文件

5、索引文件的数据域存储指向数据文件的指针

InnoDb 存储引擎

1、支持ACID的事务,支持食物的四种隔离级别

  • Read uncommitted 读未提交:即一个事务可以读取另一个未提交事务的数据
  • Read committed 读提交:即一个事务要等另一个事务提交后才能读取数据
  • Repeatable read 重复度:即事务开启时,不再允许修改操作(但允许插入操作)
  • Serializable 序列化:最高级别的事务隔离,事务串行操作,但是效率底下

2、支持行级锁以及外键约束,支持写并发

3、不存储表的总行数

4、一个InnoDb引擎存储在一个文件空间

5、主键索引采用聚集索引,