Inndb和MyISAM在存储上的区别

Inndb和MyISAM在存储上的区别?

Innodb的存储文件有:

  1. .frm,表结构文件
  2. .ibd,数据和索引文件

MyISAM的存储文件有:

  1. .frm,表结构文件
  2. .myi,索引文件
  3. .myd,数据文件

Innodb

在Innodb中有新的概念叫聚集索引(聚簇索引)非聚集索引,用主键建立的索引(B+树)叫聚集索引,而其它索引(也称二级索引或辅助索引)叫做非聚集索引。

主键索引所构造的B+树(聚集索引)的叶子节点包含了完整行记录(因为.ibd文件包含了数据和索引)。

如果建表时没有建立索引,那么Innodb默认建立一个id字段,用于生成聚集索引,这个是透明的。
对于二级索引的B+树(非聚集索引)的叶子节点只包含了主键值。

当使用二级索引查询时,如果需要查询的字段不包括主键字段,就需要用主键值,到聚集索引获取完整的行记录,这个过程叫回表查询。因此,指定字段名时只包含主键字段,到达不回表而直接返回,这个过程称为覆盖索引

MyISAM

在MyISAM中没有聚集索引这个概念,其主键索引也好二级索引也罢,其B+数的叶子节点,都指向了节点对应的数据存储地址,即磁盘地址。因为数据被存放在.myd文件中,必须通过磁盘地址指向。

MyISAM不存在聚集索引、回表查询,更不存在覆盖索引的概念。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>