死磕数据库:聚集索引(Clustered Index)

Every InnoDB table has a special index called the clustered index where the data for the rows is stored. Typically, the clustered index is synonymous with the primary key.

聚集索引(Clustered Index)与其说是索引,它更像是建立在索引之上的某种存储策略。索引要解决的是快速访问(access)数据,在数据库、文件系统中,B树要解决的问题是磁盘I/O与内存I/O成百万倍的访问速度差异下,如何将磁盘访问缩减到最少;而聚集索引又向前走了一步,它在索引的基础上,把数据也放在了一起,这样除了索引页的磁盘I/O外,数据页的磁盘I/O也进一步减少——如果把磁盘存储系统比作一本庞大的“字典”,字典的正文就是数据行,字典的目录就是索引,索引只维护数据行所在的页码,真正的数据行,你还需要根据页码去字典里找。这种情况下,正文本身才是真正庞大的数据集,那么你怎么才能通过尽量少的翻页(磁盘I/O) 就把你想查的所有数据找出来?举个例子,假设根据目录记载,你所查找的数据散落在2、4、6、8、…页,你要翻遍所有偶数页,每一页里面有你要找的数据,还有一些其他无关的数据;那我们是不是可以在编字典的时候,把要查的数据集中记录在2~4页(仅举例),这样每一页都写满了你要查的数据,你也只需要翻阅极少数的几页就可以了,此即为聚集

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值