本技术涉及计算机,尤其涉及一种数据查询的方法、装置、存储介质及电子设备。
背景技术:
1、随着互联网的飞速发展,生活中时刻都有大量的数据产生,要对数据进行组织、存储以及管理,使得数据不混乱以方便人们使用。例如:在某家金融机构,需要实时记录证券行情,以使人对各证券交易有一个清楚的认识,进而进行合理的投资,或者进行规律的统计等等,因此可构建一个时序数据库对数据进行组织存储,进而可通过该时序数据库对数据进行查询等。
2、一般的,数据库中的数据存放在计算机的磁盘中,但是由于从磁盘中读取数据的速度比从缓存中读取数据的速度慢的多,因此可将一些“常用的”数据从磁盘加载到缓存中,以提高计算机读取数据的速度。但是磁盘的容量比缓存大的多,并不能将磁盘中的所有数据都加载到缓存中,因此缓存中的数据要进行实时的更新,以将最“常用的”数据保存在缓存中。
3、基于此,本技术说明书提供了一种数据查询的方法。
技术实现思路
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、从上述方法中可以看出,通过预先构建的以数据页为基本操作单元的索引树,在进行数据查询时,可先确定待查询数据所在的数据页,进而在数据页中定位待查询数据。且在定位待查询数据的同时,可以以数据页为基本操作单元对各数据页进行缓存或者更新数据页的缓存位置,增加了缓存命中率,提高了数据查询效率。