【MySQL】InnoDB和MyISAM区别
发布时间:2023年12月26日
一、索引不同
1 InnoDB聚簇索引,MyISAM非聚簇索引
1 InnoDB聚簇索引
- 表数据文件本身就是按B+Tree组织的一个索引结构文件,数据文件是和(主键)索引绑在一起的。
- 聚集索引 - 叶子节点包含了完整的数据记录
- 必须要有主键,通过主键索引效率高。如果建表时未创建主键,MySQL会从表中找到一列全部不相等的数据,作为主键,维护索引树,如果找不到,则维护一个隐藏列,用于维护索引树。这个工作尽量让我们自己完成,不必再消耗MySQL的性能。。
- 辅助索引叶子节点存储的数据为主键id;
- 使用辅助索引查询时,需要查询两次,先查询到主键,然后再通过主键查询到数据。
主键索引:查找数据流程 -- 查询主键 = 30的数据;
1 将根节点,加载到内存中,在内存中通过二分查找算法,快速找出30的位置,找到对应的页;
2 再将这一页数据,加载到内存中,快速找出30的位置,找到对应的页;
3 最后定位到叶子节点,对应位置,从叶子节点中取出数据data。
辅助索引 : 查找数据流程 - - 辅助索引 = Eric
1 将辅助索引的根结点,加载到内存中,在内存中通过二分查找,找出对应页;
2 以此类推,直到定位到叶子节点,对应位置,从叶子节点中取出,当条数据的主键id;
3 使用主键id,在主键索引树中,回表查询,查处对应数据。
文章来源:https://blog.csdn.net/qq_37746483/article/details/135221532
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:chenni525@qq.com进行投诉反馈,一经查实,立即删除!