System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及智能索引,尤其涉及一种基于查询感知的智能索引方法及装置。
技术介绍
1、在数据的存储使用中,数据库是必不可少的关键环节。其中,在数据库中存在多种不同的索引结构来满足不同的访问模式的需求,例如b-树一般用于范围请求,哈希映射在单个键查找方面的具有优越的性能,布隆过滤器通常用于检查记录是否存在。目前这些索引仍然采用通用的数据结构,对数据分布没有任何假设,并且没有利用真实世界数据中普遍存在的更常见模式。在实际索引过程中,往往因认为所有的查询都是平等的,没有考虑到实际索引中不同的查询频率是不一样的,导致索引的性能不高。
技术实现思路
1、为此,本申请的实施例提供了一种基于查询感知的智能索引方法及装置,有效提高索引的总体性能。
2、第一方面,本申请提供一种基于查询感知的智能索引方法。
3、本申请是通过以下技术方案得以实现的:
4、一种基于查询感知的智能索引方法,所述方法包括:
5、获取用户的查询工作负载,通过概率分布模型来确定所述查询工作负载中各键的权重;
6、利用所述各键的权重,通过加权最小碰撞度方法来构建索引结构;
7、通过查询操作来定位插入键的目标位置,按照预设条件来检查所述插入键是否会触发索引结构的调整操作;
8、若触发调整操作,则重新构建新的索引结构。
9、在本申请一较佳的示例中可以进一步设置为,使用概率分布模型来拟合查询工作负载中相邻两个窗口的工作负载分布,使用kullbac
10、若所述偏差小于预设偏差值,则将偏移变量设置为0;
11、若所述偏差大于或等于预设偏差值,则将偏移变量增加1。
12、在本申请一较佳的示例中可以进一步设置为,获取用户的查询工作负载,通过概率分布模型来确定所述查询工作负载中各键的权重的步骤包括:
13、给定查询工作负载,使用概率分布模型来拟合查询工作负载中各键的访问比率;
14、根据各键的访问比率来计算各键的权重。
15、在本申请一较佳的示例中可以进一步设置为,所述利用所述各键的权重,通过加权最小碰撞度方法来构建索引结构的步骤包括:
16、设置碰撞度c的初始值为1,并初始化x,y,uc:
17、
18、从k0开始判断键集合k中键是否满足f(ki+l(i))-f(ki)≥u,若满足则移动至下一个键,更新l(i),重复验证;若不满足,则将碰撞度c的值增加1,更新x,y,uc的值,并返回当前ki开始的验证循环,直至所有键都检查完,得到索引结构的模型m和碰撞度c的期望值。
19、在本申请一较佳的示例中可以进一步设置为,若满足以下任一条件,则触发索引结构的调整操作:
20、若当前段索引的插入键的数量大于或等于2倍的上一次调整中段索引的键的数量时,触发索引结构的调整操作;
21、若冲突的数量与插入段之间的比率大于或等于预设比率值时,触发索引结构的调整操作;
22、若当前段索引的插入键的总权重大于或等于2倍的上一次调整中段的总权重时,触发索引结构的调整操作;
23、若冲突键的总权重与当前段索引中插入键的总权重的比值大于或等于0.1时,触发索引结构的调整操作。
24、在本申请一较佳的示例中可以进一步设置为,按照预设条件来检查所述插入键是否会触发索引结构的调整操作的步骤包括:
25、若插入段含有小于第一数值的键或者大于第二数值的键时,不触发索引结构的调整操作。
26、在本申请一较佳的示例中可以进一步设置为,若触发调整操作,则重新构建新的索引结构的步骤包括:
27、计算每个键的权重,使用加权最小碰撞度计算将所述键放入索引结构中的目标位置;
28、若在目标位置插入一个键,则将在目标位置插入相关数据并将键的节点类型修改为数据节点;
29、若在目标位置插入多个键,递归构建新的子树,直至没有冲突发生,并将键的节点类型修改为指针节点,指针指向新的段。
30、在本申请一较佳的示例中可以进一步设置为,在通过查询操作来定位插入键的目标位置的步骤包括:
31、通过范围查询,首先定位预设范围的开始键和结束键的位置,采用单调递增的方式来扫描索引结构,确定插入键的目标位置。
32、第二方面,本申请提供一种基于查询感知的智能索引装置。
33、本申请是通过以下技术方案得以实现的:
34、一种基于查询感知的智能索引装置,所述装置包括:
35、权重计算模块,用于获取用户的查询工作负载,通过概率分布模型来确定所述查询工作负载中各键的权重;
36、索引结构构建模块,用于利用所述各键的权重,通过加权最小碰撞度方法来构建索引结构;
37、调整模块,用于通过查询操作来定位插入键的目标位置,按照预设条件来检查所述插入键是否会触发索引结构的调整操作;
38、重建模块,用于若触发调整操作,则重新构建新的索引结构。
39、在本申请一较佳的示例中可以进一步设置为,所述装置还包括:
40、工作负载监控模块,用于使用概率分布模型来拟合查询工作负载中相邻两个窗口的工作负载分布,使用kullback-leibler散度来判断所述相邻两个窗口的工作负载分布的偏差;
41、若所述偏差小于预设偏差值,则将偏移变量设置为0;
42、若所述偏差大于或等于预设偏差值,则将偏移变量增加1。
43、综上所述,与现有技术相比,本申请实施例提供的技术方案带来的有益效果至少包括:获取用户的查询工作负载,通过概率分布模型来确定查询工作负载中各键的权重;利用各键的权重,通过加权最小碰撞度方法来构建索引结构;通过查询操作来定位插入键的目标位置,按照预设条件来检查插入键是否会触发索引结构的调整操作;若触发调整操作,则重新构建新的索引结构。给查询键分配不同的权重,根据不同键的优先级来进行不同优先级的索引,有效提高索引性能。
本文档来自技高网...【技术保护点】
1.一种基于查询感知的智能索引方法,其特征在于,所述方法包括:
2.根据权利要求1所述的基于查询感知的智能索引方法,其特征在于,还包括:
3.根据权利要求1所述的基于查询感知的智能索引方法,其特征在于,获取用户的查询工作负载,通过概率分布模型来确定所述查询工作负载中各键的权重的步骤包括:
4.根据权利要求1所述的基于查询感知的智能索引方法,其特征在于,利用所述各键的权重,通过加权最小碰撞度方法来构建索引结构的步骤包括:
5.根据权利要求1所述的基于查询感知的智能索引方法,其特征在于,若满足以下任一条件,则触发索引结构的调整操作:
6.根据权利要求5所述的基于查询感知的智能索引方法,其特征在于,按照预设条件来检查所述插入键是否会触发索引结构的调整操作的步骤包括:
7.根据权利要求1所述的基于查询感知的智能索引方法,其特征在于,若触发调整操作,则重新构建新的索引结构的步骤包括:
8.根据权利要求1所述的基于查询感知的智能索引方法,其特征在于,所述通过查询操作来定位插入键的目标位置的步骤包括:
< ...【技术特征摘要】
1.一种基于查询感知的智能索引方法,其特征在于,所述方法包括:
2.根据权利要求1所述的基于查询感知的智能索引方法,其特征在于,还包括:
3.根据权利要求1所述的基于查询感知的智能索引方法,其特征在于,获取用户的查询工作负载,通过概率分布模型来确定所述查询工作负载中各键的权重的步骤包括:
4.根据权利要求1所述的基于查询感知的智能索引方法,其特征在于,利用所述各键的权重,通过加权最小碰撞度方法来构建索引结构的步骤包括:
5.根据权利要求1所述的基于查询感知的智能索引方法,其特征在于,若满足以下任一条件,则触发索引结构的调整操...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。