【什么是MySQL中的聚集索引】

19 篇文章 0 订阅

聚集索引 定义
I nnoDB存储引擎表是索引组织表, 即表中数据按照主键顺序存放。而 聚集索引 (clustered i ndex) 就是 按照 每 张 表的主键 构造一棵 B+树 , 同时叶子节点中存放的即为整张表的行记录数据, 也将聚集索引的叶子节点称为 数据页。
每个数据页都通过一个双向链表来进行链接。
由于实际的数据页只能按照一棵B+树进行排序, 因此 每张表 只能拥有 一个聚集索引 。 在多数情况下, 查询优 化器倾向于采用聚集索引。
因为聚集索引能够在B+树索引的叶子节点上直接找到数据。
此外, 由于定义了数 据的逻辑顺序, 它对于 主键 的排序查找和范围查找速度非常快。
叶子节点的数据就是用户所要查询的数据 如:用户需要查询一张注册用户的表, 查询最后注册的10位用户, 由于B+树索引是双向链表的, 用户可以快速 找到最后一个数据页, 并取出10条记录 SELECT * FROM Profile ORDER BY i d LIMIT 10;
虽然使用ORDER BY对主键id记录进行排序, 但是在实际过程中并没有进行所谓的filesort操作, 而这就是因为 聚集索引的特点。
另一个是范围查询 ( range query) , 即如果要查找主键某一范围内的数据, 通过叶子节点 的上层中间节点就可以得到页的范围, 之后直接读取数据页即可。如:SELECT * FROM Profile where i d > 1 and i d <1000

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值