mysql之MyISAM and InnoDB

本文探讨了MySQL中的两种主要存储引擎——InnoDB和MyISAM。InnoDB是默认引擎,提供事务处理、回滚和行级锁,而MyISAM不支持事务。InnoDB使用B+Tree索引,主键索引的叶子节点包含数据,辅助索引需通过主键回表查找;MyISAM的索引和数据分离,主键索引与辅助索引的叶子节点都指向数据指针。
摘要由CSDN通过智能技术生成

众所周知mysql的存储引擎中,比较火的就是myisam和innodb这两种,那么今天就来通过理论来分析一下这两种存储引擎之间的差别

MyISAM

myisam在mysql5.1之前呢都是mysql的默认存储引擎,每个myisam在磁盘上存储成三个文件,每个文件的名称都是通过表的名字开始的,有.frm存储表定义、.MYD存储表数据、.MYI存储表的索引。

InnoDB

innodb在mysql5.1以后呢是默认的存储引擎,它给mysql带来了事物、回滚、多版本并发控制的事物安全型表。innodb还提供了行级锁,但是必须是索引子段。

InnoDB和MyISAM的区别

1、InnoDB支持事物,MyISAM不支持。
2、聚集索引(innoDB)和非聚集索引(MyiSAM)上面的区别,InnoDB使用的是B+Tree作为索引结构,数据文件和主键索引绑在一起的,是必须要有主键的,通过主键索引效率很高。但是如果是辅助索引的话,就需要去辅助索引的索引树找到主键,通过主键再回表查数据。所以主键不能太大。
在这里插入图片描述
innoDB的主键索引树的子节点都是主键,而叶子索引才是数据文件,辅助索引的叶子节点则都是主键的值。
MyISAM也是使用的B+Tree作为的数据结构,索引和数据结构是分离,索引保存的是数据文件的指针。主键索引和辅助索引是独立的
在这里插入图片描述

总结,InnoDB的B+树的主键索引的叶子节点就是数据,辅助索引的叶子节点是主键,所以当通过辅助索引查询数据时,最后还是会通过主键再查询一下,速度较快。而MyISAM的B+树主键索引和辅助索引的叶子结点都是指向数据的指针,拿到指针以后再通过指针去拿数据,效率就可以看出来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值