什么样的列使用索引?

[b]什么样的列使用索引?[/b]
这个问题以前经常面试别人,大多数的回答都是非常浅的。只回答重复度低的,为什么重复度低的就适合采用索引,好像很少有人能答出来。

先说一个前提,所有的系统瓶颈最终都落在io上,包括网络io和磁盘io,例如,一台机器cpu每秒可以执行5亿条指令,如果是7200转的磁盘的话,一分钟7200转,一转1/120秒,大概要9-11毫秒的样子。换句话说,一次磁盘访问的时间大概是40万条指令。所以我们希望的是能充分利用cpu,减少磁盘的访问次数。B+tree正好符合这一场景,增加了运算次数,减少了数据读取的次数。

关系型数据库大多采用的索引算法就是B+tree,树天生就是解决查找问题的,数据的重复度越低,越能体现出价值。对于重复的数据,只能使用rowid标示一下。这里不具体讲B+tree的结构了,有兴趣的可以百度一下。

注:转。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值