MyISAM和InnoDB 索引区别

本文比较了InnoDB的聚集索引(数据与主键索引结合)与MyISAM的非聚集索引(索引包含数据指针)在B+树结构上的差异,强调了InnoDB表数据文件即是索引文件的特点以及主键大小对性能的影响。
摘要由CSDN通过智能技术生成

首先我们知道MyISM和InnoDB索引都是由B+树实现的,但在索引管理数据方式上却有所不同。

  InnoDB是聚集索引,数据文件是和(主键)索引绑在一起的,即索引 + 数据 = 整个表数据文件,通过主键索引到整个记录,必须要有主键,通过主键索引效率很高。但是辅助索引需要两次查询,因为辅助索引是以建索引的字段为关键字索引到主键,所以需要两次,先查询到主键,然后再通过主键查询到数据。因此,主键不应该过大,因为主键太大,其他索引也都会很大。话不多说上图:

  主键索引:以主键索引到整条记录

  辅助索引:以另一字段索引到主键

        MyISAM是非聚集索引,也是使用B+Tree作为索引结构,索引和数据文件是分离的,索引保存的是数据文件的指针。主键索引和辅助索引是独立的。也就是说:InnoDB的B+树主键索引的叶子节点就是数据文件,辅助索引的叶子节点是主键的值;而MyISAM的B+树主键索引和辅助索引的叶子节点都是数据文件的地址指针。

  主键索引:以关键字索引到记录的地址

  辅助索引:以某字段索引到记录地址

  

  从索引实现方面我们也可以看出来InnoDB表数据文件本身就是索引文件,他们是一个整体,而对于MyISAM来说数据文件和索引文件则是分开的。

作者:风云

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lyynnnnee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值