数据库内核中的二分查找

本文介绍了InnoDB存储引擎如何通过四种不同的搜索模式优化二分查找算法,使其更适用于多种SQL查询场景。针对不同的比较运算符(如>、<、=),InnoDB定义了特定的搜索模式,当遇到相同的键值时会调整查找范围,从而提高查询效率。

数据库中的二分查找,更为复杂,需要实现一个通用型的二分查找算法,使用于各种不同的SQL查询场景。

 

InnoDB针对不同的SQL语句,总结出四种不同的Search Mode,分别为:

 

#define    PAGE_CUR_G          1        >查询

#define    PAGE_CUR_GE         2        >=,=查询

#define    PAGE_CUR_L          3        <查询

#define    PAGE_CUR_LE         4        <=查询

 

然后根据这四种不同的Search Mode,在二分查找碰到相同键值时进行调整。例如:若Search Mode为PAGE_CUR_G或者是PAGE_CUR_LE,则移动low至mid,继续进行二分查找;若Search Mode为PAGE_CUR_GE或者是PAGE_CUR_L,则移动high至mid,继续进行二分查找。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值