本技术涉及数据处理,具体涉及一种数据查询方法、装置、计算机设备及存储介质。
背景技术:
1、日志结构合并树(log structured merge tree,lsm)是一种数据库索引结构,经常被应用于非关系型数据库,在基于lsm树的存储系统中,数据通常是以索引字段-数值的形式进行存储。排序查询在处理海量的数据时显示出很好的查询效率,因此,被广泛应用于基于lsm树的存储系统中。
2、现有排序查询的过程为:给定多个数据项,从中选出与查询条件相匹配的多个待查询数据,然后遍历所有待查询数据返回查询结果。现有排序查询方式由于需要遍历所有待查询数据,查询时间长,响应速度慢。
技术实现思路
1、本技术实施例提供一种数据查询方法、装置、计算机设备及存储介质,可以避免遍历所有待查询数据,缩短数据查询时间,提高数据查询响应速度。
2、一方面,本技术提供一种数据查询方法,所述数据查询方法包括:
3、获取数据存储列表的数据查询指令;
4、根据所述数据查询指令从所述数据存储列表中确定多个待查询数据;
5、确定所述多个待查询数据中每个待查询数据的第一位图数据,所述第一位图数据用于表征所述每个待查询数据是否与所述数据查询指令匹配;
6、获取预先确定的所述每个待查询数据的第二位图数据,所述第二位图数据用于表征所述每个待查询数据是否大于所述多个待查询数据的均值;
7、基于所述第一位图数据和所述第二位图数据,从所述多个待查询数据中筛选出若干第一候选数据;
8、基于所述若干第一候选数据,确定所述数据查询指令对应的查询结果集。
9、在本技术一些实施方案中,所述根据所述数据查询指令从所述数据存储列表中确定多个待查询数据,包括:
10、获取所述数据查询指令中的索引字段,所述索引字段为所述数据存储列表中与所述多个待查询数据关联的字段;
11、根据所述索引字段,从所述数据存储列表中确定多个待查询数据。
12、在本技术一些实施方案中,所述确定所述多个待查询数据中每个待查询数据的第一位图数据,包括:
13、从所述多个待查询数据中筛选出若干第二候选数据,所述若干第二候选数据为所述多个待查询数据中与所述数据查询指令匹配的数据;
14、将预设的第一数值确定为所述若干第二候选数据中每个第二候选数据的第一位图数据;
15、将预设的第二数值确定为所述多个待查询数据中除所述若干第二候选数据以外的每个待查询数据的第一位图数据。
16、在本技术一些实施方案中,所述获取预先确定的所述每个待查询数据的第二位图数据之前,所述方法包括:
17、获取所述多个待查询数据中的最大值和最小值,并基于所述最大值和所述最小值确定所述多个待查询数据的均值;
18、将所述多个待查询数据分别与所述均值进行比较,得到所述每个待查询数据的比较结果;
19、根据所述比较结果,确定所述每个待查询数据的第二位图数据。
20、在本技术一些实施方案中,所述基于所述第一位图数据和所述第二位图数据,从所述多个待查询数据中筛选出若干第一候选数据,包括:
21、对所述第一位图数据和所述第二位图数据进行位运算,得到所述每个待查询数据的目标位图数据;
22、基于所述目标位图数据,从所述多个待查询数据中筛选出若干第一候选数据。
23、在本技术一些实施方案中,所述数据查询指令中包括查询数据量,所述基于所述若干第一候选数据,确定所述数据查询指令对应的查询结果集,包括:
24、获取所述若干第一候选数据的初始数据量,将所述初始数据量与所述查询数据量进行比较;
25、当所述初始数据量大于或等于所述查询数据量时,从所述第一候选数据中查询出若干第一目标数据,所述若干第一目标数据的数据量为所述查询数据量,且所述若干第一目标数据为所述若干第一候选数据中排序靠前或者排序靠后的数据;
26、将所述若干第一目标数据组成的数据集,确定为所述数据查询指令对应的查询结果集。
27、在本技术一些实施方案中,所述将所述初始数据量与所述查询数据量进行比较之后,所述方法还包括:
28、当所述初始数据量小于所述查询数据量时,从所述多个待查询数据中筛选出若干第三候选数据,所述若干第三候选数据为所述多个待查询数据中除所述若干第一候选数据之外的数据;
29、从所述若干第三候选数据中查询出若干第二目标数据,所述若干第二目标数据为所述若干第三候选数据中与所述数据查询指令匹配且排序靠前或者排序靠后的数据;
30、将所述若干第二目标数据及所述若干第一候选数据组成的数据集,确定为所述数据查询指令对应的查询结果集。
31、另一方面,本技术提供一种数据查询装置,所述数据查询装置包括:
32、指令获取单元,用于获取数据存储列表的数据查询指令;
33、第一确定单元,用于根据所述数据查询指令从所述数据存储列表中确定多个待查询数据;
34、第二确定单元,用于确定所述多个待查询数据中每个待查询数据的第一位图数据,所述第一位图数据用于表征所述每个待查询数据是否与所述数据查询指令匹配;
35、数据获取单元,用于获取预先确定的所述每个待查询数据的第二位图数据,所述第二位图数据用于表征所述每个待查询数据是否大于所述多个待查询数据的均值;
36、数据筛选单元,用于基于所述第一位图数据和所述第二位图数据,从所述多个待查询数据中筛选出若干第一候选数据;
37、数据查询单元,用于基于所述若干第一候选数据,确定所述数据查询指令对应的查询结果集。
38、在本技术一些实施方案中,所述第一确定单元具体用于:
39、获取所述数据查询指令中的索引字段,所述索引字段为所述数据存储列表中与所述多个待查询数据关联的字段;
40、根据所述索引字段,从所述数据存储列表中确定多个待查询数据。
41、在本技术一些实施方案中,所述第二确定单元具体用于:
42、从所述多个待查询数据中筛选出若干第二候选数据,所述若干第二候选数据为所述多个待查询数据中与所述数据查询指令匹配的数据;
43、将预设的第一数值确定为所述若干第二候选数据中每个第二候选数据的第一位图数据;
44、将预设的第二数值确定为所述多个待查询数据中除所述若干第二候选数据以外的每个待查询数据的第一位图数据。
45、在本技术一些实施方案中,所述数据筛选单元具体用于:
46、对所述第一位图数据和所述第二位图数据进行位运算,得到所述每个待查询数据的目标位图数据;
47、基于所述目标位图数据,从所述多个待查询数据中筛选出若干第一候选数据。
48、在本技术一些实施方案中,所述数据查询指令中包括查询数据量,所述基于所述若干第一候选数据,确定所述数据查询指令对应的查询结果集,包括:
49、获取所述若干第一候选数据的初始数据量,将所述初始数据量与所述查询数据量进行比较;
50、当所述初始数据量大于或等于所述查询数据量时,从所述第一候选数据中查询出若干第一目标数据,所述若干第一目标数据的数据量为所述查询数据量,且所述若干第一目标数据为所述若干第一候选数据中排序靠前或者排序靠后的数据;
51、将所述若干第一目标数据组成的数据集,确定为所述数据查询指令对应的查询结果集。
52、在本技术一些实施例中,所述数据查询单元具体还用于:
53、当所述初始数据量小于所述查询数据量时,从所述多个待查询数据中筛选出若干第三候选数据,所述若干第三候选数据为所述多个待查询数据中除所述若干第一候选数据之外的数据;
54、从所述若干第三候选数据中查询出若干第二目标数据,所述若干第二目标数据为所述若干第三候选数据中与所述数据查询指令匹配且排序靠前或者排序靠后的数据;
55、将所述若干第二目标数据及所述若干第一候选数据组成的数据集,确定为所述数据查询指令对应的查询结果集。
56、在本技术一些实施例中,所述数据查询装置还包括:
57、第三确定单元,用于获取所述多个待查询数据中的最大值和最小值,并基于所述最大值和所述最小值确定所述多个待查询数据的均值;
58、数据比较单元,用于将所述多个待查询数据分别与所述均值进行比较,得到所述每个待查询数据的比较结果;
59、第四确定单元,用于根据所述比较结果,确定所述每个待查询数据的第二位图数据。
60、另一方面,本技术还提供一种计算机设备,所述计算机设备包括:
61、一个或多个处理器;
62、存储器;以及
63、一个或多个应用程序,其中所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行以实现第一方面中任一项所述的数据查询方法。
64、第四方面,本技术还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行第一方面任一项所述的数据查询方法中的步骤。
65、本技术基于若干第一候选数据确定数据查询指令对应的查询结果集,可以避免遍历所有待查询数据,并且由于若干第一候选数据是基于第一位图数据和第二位图数据从多个待查询数据中筛选出的数据,若干第一候选数据的数据量小于多个待查询数据的数据量,基于若干第一候选数据进行数据查询可以缩短数据查询时间,提高数据查询响应速度。