关于数据库反向索引

反向索引与平时的常用索引不同的是,它将要增加索引的列的数据按字节颠倒(相当于reverse) 存放,比如要存的数据为:

12345
12346
12347
12348

反转为:

54321
64321
74321
84321

这样存的好处是:解决树的倾斜问题,而且可以解决在大量IO操作的情况下,防止硬盘在某个区域操作过于频繁,引起"热点"问题。

不适用的情况:范围查询。

适用的情况:数据是按顺序增长,如ID等。

名词解释:

树的分支:因为索引一般是按树这个数据结构来组织,所以有很多分支,把不同类别或范围的数据存放在分支里,在符合条件的分支里查询比在全表查询效率高很多。

树的倾斜:树的某个分支过与庞大,而其他分支内容却很少,这样的索引非常不健康的,查询速度也很慢,如上面的示例数据,都在10000-20000的分支,而20000-30000或者以上的分支是空的。反转后把这些数据均匀分布到不同的分支,可以使索引更加健康,也更有效率。

热点问题:由于系统在表数据的增删改查的同时,同时要承担索引开支,而这主要是硬盘的IO操作,如果树是倾斜的,而且数据的增加是按一定顺序增长的,这种情况会导致硬盘对某一固定区域操作频繁,会出现热点问题,而且出现瓶颈。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值