System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术实施例涉及数据处理,尤其涉及一种数据查询方法、装置、设备、介质及产品。
技术介绍
1、在当前的软件开发中,java数组查询是一个常见的操作。尽管存在多种数组查询方案,但大多数方案在处理大规模数据集时,查询效率往往受到严重影响。以传统的线性查询为例,它需要在数组中逐个元素进行比对,直至找到目标元素或遍历完整个数组。这种方法在处理小型数组时表现尚可,但在处理大型数组时,效率将显著降低,无法满足实时查询的需求。
2、此外,还有一些高级查询算法,如二分查找等,虽然能够在一定程度上提高查询效率,但它们通常要求数组是预先排序的,这在实际应用中可能并不总是可行的。
技术实现思路
1、本专利技术实施例提供一种数据查询方法、装置、设备、介质及产品,以克服上述问题或者至少部分地解决上述问题。
2、本专利技术实施例第一方面提供了一种数据查询方法,所述方法包括:
3、接收在线交易客户端发送的针对目标数据元素的数据查询请求;
4、根据预先构建的多个子数组的索引,进行初步查询,确定所述目标数据元素所在的目标子数组;所述多个子数组组成原始数组,一个子数组的索引包括该子数组内的各个数据元素以及各个数据元素在该子数组中的位置;
5、在所述目标子数组内进行再次查询,确定所述目标数据元素在所述原始数组中的位置;
6、向所述在线交易客户端返回再次查询的结果。
7、可选地,所述方法还包括:
8、依据数据划分需求信息,确
9、将长度为n的原始数组划分为k个子数组,每个子数组大小为m=n/k;
10、在检测到数据规模或访问模式发生变化时,重新确定子数组大小m,并对长度为n的原始数组进行重新划分。
11、可选地,所述方法还包括:
12、针对每个子数组,根据该子数组内的数据元素在该子数组中的位置,为该子数组生成一个索引;
13、针对一个子数组,在该子数组内存在相同的数据元素时,确定该相同的数据元素在该子数组中的最新位置;
14、将该相同的数据元素在该子数组中的最新位置,保存在所述子数组的索引中。
15、可选地,所述多个子数组的索引以哈希表或数组的形式存储在内存中;所述根据预先构建的多个子数组的索引,进行初步查询,确定所述目标数据元素所在的目标子数组,包括:
16、根据所述目标数据元素,遍历每个子数组的索引,确定所述目标数据元素所在的目标子数组。
17、可选地,所述在所述目标子数组内进行再次查询,确定所述目标数据元素在所述原始数组中的位置,包括:
18、将所述目标子数组内的各个数据元素分别与所述目标数据元素进行比较,直至在所述目标子数组内查询到所述目标数据元素,确定所述目标数据元素在所述目标子数组内的局部位置;
19、根据所述目标子数组的索引、子数组大小和所述局部位置,确定所述目标数据元素在所述原始数组中的位置。
20、可选地,所述方法还包括:
21、确定所述原始数组的更新频次;
22、所述依据数据划分需求信息,确定子数组大小m,包括:
23、在所述更新频次大于目标频次时,依据所述数据划分需求信息,确定子数组大小m。
24、本专利技术实施例第二方面提供了一种数据查询装置,所述装置包括:
25、请求接收模块,用于接收在线交易客户端发送的针对目标数据元素的数据查询请求;
26、初步查询模块,用于根据预先构建的多个子数组的索引,进行初步查询,确定所述目标数据元素所在的目标子数组;所述多个子数组组成原始数组,一个子数组的索引包括该子数组内的各个数据元素以及各个数据元素在该子数组中的位置;
27、再次查询模块,用于在所述目标子数组内进行再次查询,确定所述目标数据元素在所述原始数组中的位置;
28、结果返回模块,用于向所述在线交易客户端返回再次查询的结果。
29、可选地,所述装置还包括:
30、数据大小确定模块,用于依据数据划分需求信息,确定子数组大小m;
31、第一数据划分模块,用于将长度为n的原始数组划分为k个子数组,每个子数组大小为m=n/k;
32、第二数据划分模块,用于在检测到数据规模或访问模式发生变化时,重新确定子数组大小m,并对长度为n的原始数组进行重新划分。
33、可选地,所述装置还包括:
34、索引生成模块,用于针对每个子数组,根据该子数组内的数据元素在该子数组中的位置,为该子数组生成一个索引;
35、位置确定模块,用于针对一个子数组,在该子数组内存在相同的数据元素时,确定该相同的数据元素在该子数组中的最新位置;
36、位置保存模块,用于将该相同的数据元素在该子数组中的最新位置,保存在所述子数组的索引中。
37、可选地,所述多个子数组的索引以哈希表或数组的形式存储在内存中;所述初步查询模块,包括:
38、初步查询子模块,用于根据所述目标数据元素,遍历每个子数组的索引,确定所述目标数据元素所在的目标子数组。
39、可选地,所述再次查询模块,包括:
40、元素比较子模块,用于将所述目标子数组内的各个数据元素分别与所述目标数据元素进行比较,直至在所述目标子数组内查询到所述目标数据元素,确定所述目标数据元素在所述目标子数组内的局部位置;
41、再次查询子模块,用于根据所述目标子数组的索引、子数组大小和所述局部位置,确定所述目标数据元素在所述原始数组中的位置。
42、可选地,所述装置还包括:
43、频次确定模块,用于确定所述原始数组的更新频次;
44、所述数据大小确定模块,包括:
45、数据大小确定子模块,用于在所述更新频次大于目标频次时,依据所述数据划分需求信息,确定子数组大小m。
46、本专利技术实施例第三方面提供了一种电子设备,所述电子设备包括:包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述计算机程序被该处理器执行时实现如本专利技术实施例第一方面的数据查询方法。
47、本专利技术实施例第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现本专利技术实施例第一方面的数据查询方法。
48、本专利技术实施例第五方面提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现第一方面所述的数据查询方法。
49、通过本专利技术实施例提供的数据查询方法,首先,接收在线交易客户端发送的针对目标数据元素的数据查询请求;其次,根据预先构建的多个子数组的索引进行初步查询,确定目标数据元素所在的目标子数组;其中,该多个子数组组成原始数组,一个子数组的索引包括该子数组内的各个数据元素以及各个数据元素在该子数组中的位本文档来自技高网...
【技术保护点】
1.一种数据查询方法,其特征在于,所述方法包括:
2.根据权利要求1所述的数据查询方法,其特征在于,所述方法还包括:
3.根据权利要求1所述的数据查询方法,其特征在于,所述方法还包括:
4.根据权利要求1至3任一所述的数据查询方法,其特征在于,所述多个子数组的索引以哈希表或数组的形式存储在内存中;所述根据预先构建的多个子数组的索引,进行初步查询,确定所述目标数据元素所在的目标子数组,包括:
5.根据权利要求1至3任一所述的数据查询方法,其特征在于,所述在所述目标子数组内进行再次查询,确定所述目标数据元素在所述原始数组中的位置,包括:
6.根据权利要求2所述的数据查询方法,其特征在于,所述方法还包括:
7.一种数据查询装置,其特征在于,所述装置包括:
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述计算机程序被所述处理器执行时实现如权利要求1至6任一所述的数据查询方法。
9.一种计算机可读存储介质,所述计算机可读存储介质上存储有
10.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现如权利要求1至6任一项所述的数据查询方法。
...【技术特征摘要】
1.一种数据查询方法,其特征在于,所述方法包括:
2.根据权利要求1所述的数据查询方法,其特征在于,所述方法还包括:
3.根据权利要求1所述的数据查询方法,其特征在于,所述方法还包括:
4.根据权利要求1至3任一所述的数据查询方法,其特征在于,所述多个子数组的索引以哈希表或数组的形式存储在内存中;所述根据预先构建的多个子数组的索引,进行初步查询,确定所述目标数据元素所在的目标子数组,包括:
5.根据权利要求1至3任一所述的数据查询方法,其特征在于,所述在所述目标子数组内进行再次查询,确定所述目标数据元素在所述原始数组中的位置,包括:
6.根据权利要求2所述...
【专利技术属性】
技术研发人员:宋佳浩,
申请(专利权)人:中电信人工智能科技北京有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。