InnoDB和MyISAM的区别
来源:3-7 密集索引和稀疏索引的区别

weixin_慕函数6469244
2023-12-12
(1)
老师你看看我这里理解正确吗?
InnoDB,在辅助索引查到的结果是主键id,如果需要更多信息,需要回表到主键索引再查一次。
而myISAM主键索引和辅助索引查询结果都是行数据,也就是说如果通过辅助索引查询,也无需回表?
(2)
InnoDB这么设计的原因是什么呢?我查询了解到好像是为了实现事务功能,但为什么能够因此实现事务没看懂。
写回答
1回答
-
翔仔
2023-12-13
同学好,
1.MyISAM索引文件和数据文件是分离的,索引文件仅保存数据记录的地址,根据索引找到地址进行查询。InnoDB中,表数据文件本身就是按B+Tree组织的一个索引结构,这个时候叫聚簇索引;辅助索引查询的是主键id,如果不在索引中就是需要回表到主键索引查询。
2.不同的存储引擎设计都是根据其适用场景来的,通过对底层数据结构的设计,使对应的存储引擎可以更适应场景需求。InnoDB使用聚簇索引和辅助索引结合,能够实现高效的查询和更新;正是有了不同的索引,InnoDB通过给索引项加锁才实现了行级锁;行锁的实现才使得事务实现更简单
032023-12-20
相似问题