事务方面
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索引查询数据过程
非聚簇索引存储结构
聚簇索引存储结构
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述