事务方面

  InnoDB支持事务,MyISAM不支持事务。MySql的默认存储引擎为InnoDB

外键方面

  InnoDB支持外键,MyISAM不支持,对一个包含外键的InnoDB表转为MYISAM会失败

索引层面

  InnoDB是聚簇索引,MyISAM是非聚簇索引

  MyISAM支持FULLTEXT类型的全文索引

  InnoDB不支持FULLTEXT类型的全文索引,但是InnoDB可以使用sphinx插件支持全文索引,并且效果更好。

锁粒度方面

  InnoDB最小粒度锁是行锁,MyISAM最小粒度锁是表锁

硬盘存储结构

  MyISAM在磁盘上存储成三个文件,第一个文件的名字以表的名字开始,扩展名指出文件类型

   .frm文件存储表的定义

   数据文件的扩展名为.MYD(MYData)

   索引文件的扩展名为.MYI(MYIndex)

 

  InnoDB在磁盘上存储成两个文件

   Frm文件:表的定义文件

   Ibd文件:数据和索引存储文件。数据以主键进行聚集存储,把真正的数据保存在叶子节点中

 

聚簇索引和非聚簇索引

  聚簇索引(InnoDB

    将数据存储和索引放到一块,索引结构的叶子节点保存了行数据

    表数据按照索引的顺序来存储的,也就是索引项的顺序与表中记录的物理顺序一致

    InnoDB中,在聚簇索引之上船舰的索引称之为辅助索引,像复合索引,前缀索引,唯一索引等

    1.聚簇索引默认是主键

    2.如果表中没有定义主键,InnoDB会选择一个唯一非空索引替代

 3.如果没有这样的索引,InnoDB会在内部生成一个名为GEN_CLUST_INDEX的隐式的聚簇索引

   非聚簇索引(MyISAM

将数据与索引分开存储,表数据存储顺序与索引顺序无关

 

MyISAM索引查询数据过程

  非聚簇索引存储结构

 

 

 

  聚簇索引存储结构

 

 

posted on 2022-03-22 07:31  ScoutDu  阅读(120)  评论(0编辑  收藏  举报