「一分钟学Java」快速了解MySQL索引(二)

前提知识点

  1. MySQL的InnoDB索引数据结构是B+树

  2. 主键索引叶子节点的值存储的就是MySQL的数据行,普通索引的叶子节点的值存储的是主键值

什么是聚簇索引

找到了索引就找到了需要的数据,那么这个索引就是聚簇索引,所以主键就是聚簇索引,修改聚簇索引其实就是修改主键。

聚簇索引将B+树的叶子结点存放行数据。

InnoDB的默认数据结构是聚簇索引。

InnoDB

主要注意,一般情况下主键会默认创建聚簇索引,且一张表只允许存在一个聚簇索引

  • 聚簇索引就是按照每张表的主键构造一颗B+树,同时叶子节点中存放的就是整张表的行记录数据,也将聚簇索引的叶子节点称为数据页。这个特性决定了索引组织表中数据也是索引的一部分,每张表只能拥有一个聚簇索引
  • InnoDB通过主键聚集数据,如果没有定义主键,InnoDB会选择非空的唯一索引代替。如果没有这样的索引,InnoDB会隐式定义一个主键来作为聚簇索引

优点

数据访问更快

缺点

插入速度严重依赖插入顺序,故推荐将自增ID作为主键,避免因为插入数据导致频繁更新索引文件。

什么是非聚簇索引

索引的存储和数据的存储是分离的,如果找到了索引但没找到数据,需要根据索引上的值(主键)再次回表查询,这类索引就是非聚簇索引。

索引子节点中存的是数据地址,先查找到索引中保存的地址,再根据地址从数据文件中找到数据,

MyISAM的默认数据结构是非聚簇索引。

MyISAM

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值