MySQL存储引擎--InnoDB vs MyISAM

InnoDB 默认的存储引擎

MySQL存储引擎--InnoDB vs MyISAM_第1张图片

InnoDB是一个事务型的存储引擎,有行级锁定和外键约束。

适用场景

  1. 经常更新的表,适合处理高并发的更新请求。
  2. 支持事务
  3. 可以从灾难中恢复(通过bin-log日志)
  4. 外键约束
  5. 支持自动增加列属性auto_increment

MyISAM支持FULL TEXT类型的索引,并且保存了表的行数,不支持事务、行级锁和外键。

适用场景

  1. 查询速度快
  2. select count(*) from table时只需要直接读取已经保存好的值不需要进行全表扫描。

索引结构

MyISAM采用的是非聚集索引,用B+tree来存储数据,索引的指针指向的是键值的地址,地址存储的是数据。

InnoDB也是B+树,它的索引文件本身就是数据文件,即B+Tree的数据域存储的就是实际的数据,这种索引就是聚集索引

你可能感兴趣的:(Mysql)