聚簇索引和二级索引

本文深入探讨了数据库中的聚簇索引和二级索引的工作原理。聚簇索引基于主键构建,叶子节点存储完整行数据,提供高效查询;而二级索引叶子节点仅存储部分数据,需要回表查询。文章通过实例解释了回表查询的过程,并分析了两种索引的优缺点。了解这些知识有助于优化数据库查询性能。
摘要由CSDN通过智能技术生成

先背书

聚簇索引

  • 聚簇索引通过表的主键构建一个B+tree树

  • 构建成的B+tree树叶子节点存放每一行的所有字段数据,也把叶子节点称为数据页

  • 每张表只能拥有一个聚簇索引

  • 如果没有定义主键,innodb会选择非空的唯一索引(第一个唯一索引)代替

  • 如果自定义主键和唯一索引都没有的话,innodb会生成一个隐式主键id,来做聚簇索引

二级索引

  • 也叫辅助索引或者非聚簇索引

  • 聚簇索引不一样的是,二级索引的叶子节点不存储行数据了,除了键值之外,还包含了相应行数据的聚簇索引对应列的值

  • 在查询二级索引时,先查询到叶子节点上相应行数据的聚簇索引对应列的值,再去查询聚簇索引查询到数据

  • 一张表可以有多个二级索引

直接上栗子

  • 用户类别表,主要有四个字段id(主键id), user_id(用户id), cate_id(用户类别),update_time(数据写入时间)

  • 索引的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值