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通过给索引项加锁才实现了行级锁;行锁的实现才使得事务实现更简单

0
3
翔仔
回复
weixin_慕函数6469244
同学好,可以这么理解的
2023-12-20
共3条回复

剑指Java面试-Offer直通车 百度资深面试官授课

招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航

8441 学习 · 1872 问题

查看课程