位图数据查询方法、装置、计算机设备和存储介质与流程

文档序号:17398596发布日期:2019-04-13 01:01阅读:206来源:国知局
位图数据查询方法、装置、计算机设备和存储介质与流程

本申请涉及数据处理技术领域,特别是涉及一种位图数据查询方法、装置、计算机设备和存储介质。



背景技术:

随着数据处理技术的发展,出现了位图技术,通过位图技术可以对大量的数据进行存储,并构建每个数据对应的位图,通过每个数据对应的位图可以对存储的数据进行查询。

然而,传统的位图数据查询方式中,对于每个数据都有对应的位图,在数据量较大时,对数据进行查询过程中,需要读取的位图数量较多,从而使得位图的读取量大大增加,从而降低了位图数据的查询效率。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够提高位图数据查询效率的位图数据查询方法、装置、计算机设备和存储介质。

一种位图数据查询方法,所述方法包括:

获取数据查询指令;

根据所述数据查询指令提取数据存储列表,及所述数据存储列表中部分数据对应的数据位图;

提取所述数据查询指令中的待查询数据,得到待查询数据集合;

根据提取到的数据位图,确定所述待查询数据集合中的待查询数据在所述数据存储列表中的候选位置;

根据所述候选位置得到所述待查询数据集合对应的查询结果位图。

一种位图数据查询装置,其特征在于,所述装置包括:

指令获取模块,用于获取数据查询指令;

提取模块,用于根据所述数据查询指令提取数据存储列表,及所述数据存储列表中部分数据对应的数据位图;

集合获取模块,用于提取所述数据查询指令中的待查询数据,得到待查询数据集合;

位置确定模块,用于根据提取到的数据位图,确定所述待查询数据集合中的待查询数据在所述数据存储列表中的候选位置;

位图生成模块,用于根据所述候选位置得到所述待查询数据集合对应的查询结果位图。

一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

获取数据查询指令;

根据所述数据查询指令提取数据存储列表,及所述数据存储列表中部分数据对应的数据位图;

提取所述数据查询指令中的待查询数据,得到待查询数据集合;

根据提取到的数据位图,确定所述待查询数据集合中的待查询数据在所述数据存储列表中的候选位置;

根据所述候选位置得到所述待查询数据集合对应的查询结果位图。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

获取数据查询指令;

根据所述数据查询指令提取数据存储列表,及所述数据存储列表中部分数据对应的数据位图;

提取所述数据查询指令中的待查询数据,得到待查询数据集合;

根据提取到的数据位图,确定所述待查询数据集合中的待查询数据在所述数据存储列表中的候选位置;

根据所述候选位置得到所述待查询数据集合对应的查询结果位图。

上述位图数据查询方法、装置、计算机设备和存储介质,通过数据查询指令、数据存储列表、数据存储列表中部分数据集合对应的数据位图和从数据查询指令中提取的待查询数据集合,读取数据存储列表中部分数据集合对应的数据位图,无需读取全部数据存储列表,在读取到的数据存储列表中查询待查询数据集合中的待查询数据,根据待查询数据在数据存储列表中的候选位置得到待查询数据集合对应的查询结果位图,减少了需要读取的位图数量和存储列表数量,提升了位图数据的查询效率。

附图说明

图1为一个实施例中位图数据查询方法的应用环境图;

图2为一个实施例中位图数据查询方法的流程示意图;

图3为一个实施例中构建数据位图的步骤的流程示意图;

图4为一个实施例中提取数据存储列表及数据位图的步骤的流程示意图;

图5为一个实施例中确定候选位置的步骤的流程示意图;

图6为一个实施例中得到查询结果位图的步骤的流程示意图;

图7为一个实施例中位图数据查询的示意图;

图8为一个实施例中位图数据查询装置的结构框图;

图9为另一个实施例中位图数据查询装置的结构框图;

图10为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的位图数据查询方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104通过网络进行通信。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在一个实施例中,如图2所示,提供了一种位图数据查询方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:

步骤202,获取数据查询指令。

其中,数据查询指令是在数据库列表中查询数据的指令。数据库可以是多维数据库。

具体地,终端获取用户触发的在数据存储列表中查询数据的数据查询请求,根据输入的待查询数据和数据存储列表标识,生成数据查询指令。数据存储列表可以是多维数据库中一个维度下存储数据的列表。比如,数据存储列表可以是多维数据库中一个维度下的int32列表,在int32列表中,每一个数据采用32位存储。终端通过网络将数据查询指令发送至服务器。服务器接收数据查询指令。

步骤204,根据数据查询指令提取数据存储列表,及数据存储列表中部分数据对应的数据位图。

其中,数据位图是数据存储列表中部分数据的位图,用比特位的数值表示与数据位图对应的数据在数据存储列表中的状态,比如1可以表示存在,0可以表示不存在。

具体地,服务器对获取到的数据查询指令进行解析,得到数据查询指令中的数据存储列表标识。服务器提取数据存储列表标识,在数据库中查询对应的数据存储列表。数据库中预存有数据存储列表中部分数据的数据位图,服务器查询到数据存储列表时,获取数据存储列表中部分数据对应的数据位图。

步骤206,提取数据查询指令中的待查询数据,得到待查询数据集合。

其中,待查询数据是服务器从数据查询指令中提取到的,需要查询的数据。

具体地,服务器对获取到的数据查询指令进行解析,得到数据查询指令中的待查询数据。服务器提取解析得到的待查询数据,以得到的待查询数据作为待查询数据集合。待查询数据集合中包括至少一个待查询数据。

步骤208,根据提取到的数据位图,确定待查询数据集合中的待查询数据在数据存储列表中的候选位置。

具体地,服务器按照数据位图中的位图数值存储顺序读取数据位图,当读取到数据位图中位图数值为预设数值时,获取读取到的位图数值在数据位图中的数值位置。服务器根据数据位图中的数值位置,在数据存储列表中查询对应的存储位置,以查询到的存储位置作为待查询数据集合中的待查询数据在数据存储列表中的候选位置。

举例说明,服务器对数据查询指令进行解析得到待查询数据集合{3,4},根据解析得到的数据存储列表标识查询数据存储列表,数据库中预存有数据存储列表中数据2的数据位图,服务器获取数据2的数据位图。数据2的数据位图中,用位图数值0表示数据2不存在。服务器按照位图数值存储顺序依次读取数据位图中的位图数值,当读取到位图数值为0时,获取位图数值0在数据位图中的数值位置,在数据存储列表中查询与数值位置对应的存储位置。服务器将在数据存储列表中查询到的存储位置作为待查询数据3或4在数据存储列表中的候选位置。

步骤210,根据候选位置得到待查询数据集合对应的查询结果位图。

其中,查询结果位图是根据待查询数据在数据存储列表中的存储位置得到的位图。

具体地,服务器读取确定的候选位置中的存储数据,在待查询数据集合中查询与读取到的存储数据匹配的待查询数据。当服务器查询到与读取到的存储数据匹配的待查询数据时,在初始位图中确定与候选位置对应的位图位置,将位图位置中的数值调整为表示待查询数据存在的预定数值,得到待查询数据集合对应的查询结果位图。预定数值是二进制数字

本实施例中,通过数据查询指令、数据存储列表、数据存储列表中部分数据集合对应的数据位图和从数据查询指令中提取的待查询数据集合,读取数据存储列表中部分数据集合对应的数据位图,无需读取全部数据存储列表,在读取到的数据存储列表中查询待查询数据集合中的待查询数据,根据待查询数据在数据存储列表中的候选位置得到待查询数据集合对应的查询结果位图,减少了需要读取的位图数量和存储列表数量,提升了位图数据的查询效率。

如图3所示,在一个实施例中,步骤202之前还包括构建数据位图的步骤,该步骤具体包括如下步骤:

步骤302,获取各待存储数据。

具体地,终端获取数据存储指令及各待存储数据,将数据存储指令及各待存储数据发送至服务器。服务器接收终端发送的数据存储指令及各待存储数据。

在一个实施例中,服务器获取终端发送的数据存储指令及数据列表,准备根据数据存储指令将数据列表中各待存储数据存储到数据库的数据存储列表中。

步骤304,将各待存储数据存储到数据存储列表,并统计各待存储数据的存储频率。

其中,存储频率是各待存储数据在数据存储列表中出现的频率,可以是各待存储数据的频数与待存储数据总数的比值。

具体地,服务器从数据存储指令中提取数据存储列表标识,在数据库中查询与数据存储列表标识对应的数据存储列表。服务器读取各待存储数据,将各待存储数据存储到查询到的数据存储列表中。服务器在读取各待存储数据时统计不同的待存储数据出现的频数,将待存储数据出现的频数与待存储数据总数的比值作为各待存储数据的存储频率。

步骤306,筛选存储频率大于等于预设存储频率的存储数据。

其中,预设频率数值是预先设置的存储频率数值,用于对存储到数据存储列表中的存储数据进行筛选。

具体地,服务器获取预设存储频率,将各待存储数据的存储频率与预设存储频率进行比较,筛选存储频率大于等于预设存储频率的存储数据。

在一个实施例中,服务器获取预设存储频率,将各待存储数据的存储频率数值与预设存储频率数值进行比较,筛选出存储频率数值大于预设频率数值的存储频率,查询与筛选得到的存储频率对应的存储数据。

步骤308,根据筛选到的存储数据和数据存储列表,构建筛选到的存储数据对应的数据位图。

具体地,服务器按照存储顺序依次读取数据存储列表中的各存储数据,当读取到的存储数据属于筛选到的存储数据时,将数据位图中与读取到的存储数据对应的位图数值调整为将预设数值取反后的数值,得到筛选到的存储数据对应的数据位图。预设数值是二进制数字。

举例说明,各待存储数据中,数据2的存储频率大于等于预设存储频率,服务器经过筛选得到数据2。服务器读取按照存储顺序依次读取数据存储列表时,当读到数据2时,获取数据2在数据存储列表中的存储位置,在数据位图中确定与数据2的存储位置对应的数值位置,将确定的数值位置中的位图数值调整为1。

本实施例中,将获取到的各待存储数据存储到数据存储列表,统计各待存储数据的存储频率,筛选存储频率大于等于预设存储频率的存储数据,根据筛选到的存储数据和数据存储列表,构建筛选到的存储数据对应的数据位图。只构建存储频率大于等于预设存储频率的存储数据的数据位图,没有对出现的存储数据都构建数据位图,节省了位图存储需要占用的存储空间。

如图4所示,在一个实施例中,步骤204具体还包括提取数据存储列表及数据位图的步骤,该步骤具体包括如下步骤:

步骤402,提取数据查询指令中的数据存储列表标识。

具体地,服务器对获取到的数据查询指令进行解析,得到数据查询指令中的数据存储列表标识。数据存储列表标识为数据存储列表的唯一标识,数据存储列表标识可以是数据存储列表的存储地址,还可以是数据存储列表中存储数据对应的特征数据。

步骤404,根据数据存储列表标识,查询数据存储列表。

具体地,服务器在数据库中查询与提取到的数据存储列表标识对应的数据存储列表,将在查询到的数据存储列表中查询待查询数据。

在一个实施例中,数据存储列表标识为数据存储列表的存储地址,访问数据存储列表的存储地址对应的存储空间,从访问的存储空间中提取存储的数据存储列表。

步骤406,确定数据存储列表中存储频率大于等于预设存储频率的存储数据。

具体地,服务器将各存储数据存储到数据存储列表中时,对各存储数据的存储频率进行统计,筛选存储频率大于等于预设存储频率的存储数据,构建筛选到的存储数据对应的数据位图。服务器根据数据存储列表标识和筛选到的存储数据生成高存储频率数据表。服务器根据数据查询指令提取数据存储列表后,根据数据存储列表标识在高存储频率数据表中进行查询,得到数据存储列表中存储频率大于等于预设存储频率的存储数据。

步骤408,获取与确定的存储数据对应的数据位图。

具体地,服务器从高存储频率数据表中获取到数据存储列表中存储频率大于等于预设存储频率的存储数据后,在数据库中查询与数据存储列表中存储频率大于等于预设存储频率的存储数据对应的数据位图。

本实施例中,根据数据查询指令中的数据存储列表标识,查询数据存储列表,确定数据存储列表中存储频率大于等于预设存储频率的存储数据,获取与确定的存储数据对应的数据位图。这样可以使得服务器在查询数据时只需读取存储频率高于预设存储频率的存储数据的数据位图,减少了需要读取的位图数量。

如图5所示,在一个实施例中,步骤208具体还包括确定候选位置的步骤,该步骤具体包括如下步骤:

步骤502,按照位图数值存储顺序依次读取提取到的数据位图中的位图数值。

其中,位图数值是数据位图中每一个数值位置的二进制数值。

具体地,服务器获取数据位图后,按照位图数值的存储顺序,依次读取数据位图中的位图数值。

在一个实施例中,数据位图中的位图数值按列存储,服务器可以按照从数据位图的头部自上而下的顺序依次读取位图数值。

在一个实施例中,服务器先读取数据位图构成的整型数据,当整型数据的值是预期数值时,服务器停止读取数据位图;当整型数据的值不是预期数值时,服务器按照位图数值存储顺序依次读取数据位图中的位图数值。

举例说明,服务器根据数据查询指令在数据存储列表中查询待查询数据集合{3,4}中的待查询数据3和待查询数据4。数据位图是数据存储列表中数据2对应的位图。数据位图中使用1表示数据2存在,使用0表示数据2不存在。服务器先读取数据位图的64位位图数值表示的长整型数据,当长整型数据的值为预期数值-1时,数据位图中的位图数值均为1,数据存储列表中的存储数据均为数据2,服务器停止读取数据位图。当服务器读取到长整型数据的值不是预期数值-1时,按照位图数值存储顺序依次读取数据位图中的位图数值。

步骤504,当读取到的位图数值为预设数值时,获取读取到的位图数值在数据位图中的数值位置。

其中,预设数值是标识数据存储列表中存储频率大于等于预设存储频率的存储数据不存在状态的数值。

具体地,服务器对读取到的位图数值进行判断,当位图数值为预设数值时,数据存储列表中与读取到的位图数值对应的存储数据的存储频率小于预设存储频率,服务器获取读取到的位图数值在数据位图中的数值位置。

在一个实施例中,服务器读取到的位图数值不为预设数值时,继续按照位图数值存储顺序依次读取数据位图中的位图数值。

步骤506,在数据存储列表中确定与数值位置对应的存储位置,以确定的存储位置作为待查询数据集合中的待查询数据在数据存储列表中的候选位置。

具体地,服务器根据获取到的数值位置,在数据存储列表中查询对应的存储位置,将查询到的存储位置作为待查询数据集合中的待查询数据在数据存储列表中的候选位置。

举例说明,服务器在数据位图中读取到预设数值,获取到预设数值在数据位图中的数值位置为第1行,则数据存储列表中与数值位置对应的存储位置为第1行,服务器将数据存储列表的第1行作为待查询数据集合中的待查询数据在数据存储列表中的候选位置。

本实施例中,按照位图数值存储顺序依次读取提取到的数据位图中的位图数值,当读取到的位图数值为预设数值时,获取读取到的位图数值在数据位图中的数值位置,在数据存储列表中确定与数值位置对应的存储位置,以确定的存储位置作为待查询数据集合中的待查询数据在数据存储列表中的候选位置。当在数据位图中读取到为预设数值的位图数值时,才去读取数据存储列表,减少了需要读取的数据存储列表数量,提升了查询速度。

如图6所示,在一个实施例中,步骤210具体还包括得到查询结果位图的步骤,该步骤具体包括如下步骤:

步骤602,在数据存储列表中读取与候选位置对应的存储数据。

具体地,服务器在数据存储列表中确定待查询数据集合中的待查询数据的候选位置后,触发数据读取指令,根据数据读取指令读取与候选位置对应的存储数据。

步骤604,查询待查询数据集合中与读取到的存储数据匹配的待查询数据。

具体地,服务器读取到候选位置中的存储数据后,触发集合查询指令,根据集合查询指令在待查询数据集合中查询与读取到的存储数据匹配的待查询数据。

在一个实施例中,服务器将读取到的存储数据与待查询数据集合中的待查询数据进行比较,当待查询数据集合中存在与读取到的存储数据相同的待查询数据时,则与读取到的存储数据相同的待查询数据为与读取到的存储数据匹配的待查询数据。

步骤606,当查询到与读取到的存储数据匹配的待查询数据时,将初始位图中与读取到的存储数据对应的数值调整为预定数值,得到待查询数据集合对应的查询结果位图。

其中,初始位图是构建的与数据存储列表长度一致的位图,服务器对初始位图进行数值调整后得到查询结果位图。

具体地,服务器在待查询数据集合中查询到与读取到的存储数据匹配的待查询数据时,确定读取到的存储数据为需要查询的待查询数据,根据确定的候选位置,在初始位图中确定对应的位图位置,将初始位图中位图位置对应的数值调整为预定数值,得到待查询数据集合对应的查询结果位图。

在一个实施例中,服务器没有查询到与读取到的存储数据匹配的待查询数据时,继续按照位图数值存储顺序依次读取提取到的数据位图中的位图数值。

在一个实施例中,服务器将初始位图中位图位置对应的数值调整为预定数值后,将未经数值调整的位图位置对应的数值调整为对预定数值取反后的数值。

本实施例中,在数据存储列表中读取与候选位置对应的存储数据,查询待查询数据集合中与读取到的存储数据匹配的待查询数据,当查询到与读取到的存储数据匹配的待查询数据时,确定读取到的存储数据是待查询数据,提高了查询待查询数据的准确性;将初始位图中与读取到的存储数据对应的数值调整为预定数值,得到待查询数据集合对应的查询结果位图,提高了得到查询结果位图的准确性。

举例说明,图7为一个实施例中位图数据查询的示意图。具体地,参照图7,服务器在数据存储列表中对待查询数据集合{3,4}中的数据3和数据4进行查询。数据位图为数据存储列表中数据2的位图。服务器按照位图数值的存储顺序依次读取数据位图中的位图数值,当服务器读取到位图数值为预设数值0时,获取预设数值0在数据位图中的数值位置为第1行,将数据存储列表的第1行作为待查询数据集合中的待查询数据在数据存储列表中的候选位置。服务器读取到数据存储列表中第1行中的存储数据为数据3,在待查询数据集合{3,4}中进行查询,查询到与数据3匹配的待查询数据3,将初始位图第1行对应的数值调整为预定数值1。

服务器在数据位图中读取到1时,继续读取数据位图。当服务器在数据位图中读到预设数值0时,获取预设数值0的数值位置为第3行,服务器在数据存储列表的第3行读取到数据4,在待查询数据集合{3,4}中查询到待查询数据4,将初始位图第4行对应的数值调整为预定数值1。当服务器在数据位图中读到预设数值0时,获取预设数值0的数值位置为第4行,服务器在数据存储列表的第4行读取到数据1,在待查询数据集合{3,4}未查询到与数据1对应的待查询数据,服务器将继续读取数据位图。服务器读取数据位图完毕后,将初始位图中未经数值调整的位图位置对应的数值调整为0,得到待查询数据集合{3,4}对应的查询结果位图。服务器读取数据位图之前,若读取到数据位图表示的整型数据值为-1,将初始位图中的全部数值调整为0,得到查询结果位图。

在一个实施例中,初始位图中的全部数值均为0,服务器在数据存储列表中查询到待查询数据后,将初始位图中与待查询数据对应的位图位置的数值调整为1,服务器读取数据位图完毕后,初始位图中未经数值调整的位图位置对应的数值不做调整,仍然为0,得到查询结果位图。服务器读取数据位图之前,若读取到数据位图表示的整型数据值为-1,不对初始位图中的数值进行调整,得到查询结果位图。

应该理解的是,虽然图2-6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图8所示,提供了一种位图数据查询装置800,包括:指令获取模块802、提取模块804、集合获取模块806、位置确定模块808、位图生成模块810,其中:

指令获取模块802,用于获取数据查询指令。

提取模块804,用于根据数据查询指令提取数据存储列表,及数据存储列表中部分数据对应的数据位图。

集合获取模块806,用于提取数据查询指令中的待查询数据,得到待查询数据集合。

位置确定模块808,用于根据提取到的数据位图,确定待查询数据集合中的待查询数据在数据存储列表中的候选位置。

位图生成模块810,用于根据候选位置得到待查询数据集合对应的查询结果位图。

本实施例中,通过数据查询指令、数据存储列表、数据存储列表中部分数据集合对应的数据位图和从数据查询指令中提取的待查询数据集合,读取数据存储列表中部分数据集合对应的数据位图,无需读取全部数据存储列表,在读取到的数据存储列表中查询待查询数据集合中的待查询数据,根据待查询数据在数据存储列表中的候选位置得到待查询数据集合对应的查询结果位图,减少了需要读取的位图数量和存储列表数量,提升了位图数据的查询效率。

如图9所示,在一个实施例中,位图数据查询装置800还包括数据获取模块812、频率统计模块814、数据筛选模块816和位图构建模块818,其中:

数据获取模块812,用于获取各待存储数据。

频率统计模块814,用于将各待存储数据存储到数据存储列表,并统计各待存储数据的存储频率。

数据筛选模块816,用于筛选存储频率大于等于预设存储频率的存储数据。

位图构建模块818,用于根据筛选到的存储数据和数据存储列表,构建筛选到的存储数据对应的数据位图。

本实施例中,本实施例中,将获取到的各待存储数据存储到数据存储列表,统计各待存储数据的存储频率,筛选存储频率大于等于预设存储频率的存储数据,根据筛选到的存储数据和数据存储列表,构建筛选到的存储数据对应的数据位图。只构建存储频率大于等于预设存储频率的存储数据的数据位图,没有对出现的存储数据都构建数据位图,节省了位图存储需要占用的存储空间。

在一个实施例中,提取模块804包括:标识提取模块、列表查询模块、数据确定模块和位图获取模块,其中:

标识提取模块,用于提取数据查询指令中的数据存储列表标识。

列表查询模块,用于根据数据存储列表标识,查询数据存储列表。

数据确定模块,用于确定数据存储列表中存储频率大于等于预设存储频率的存储数据。

位图获取模块,用于获取与确定的存储数据对应的数据位图。

本实施例中,根据数据查询指令中的数据存储列表标识,查询数据存储列表,确定数据存储列表中存储频率大于等于预设存储频率的存储数据,获取与确定的存储数据对应的数据位图。这样可以使得服务器在查询数据时只需读取存储频率高于预设存储频率的存储数据的数据位图,减少了需要读取的位图数量。

在一个实施例中,位置确定模块808包括:数值读取模块、位置获取模块和候选位置确定模块,其中:

数值读取模块,用于按照位图数值存储顺序依次读取提取到的数据位图中的位图数值。

位置获取模块,用于当读取到的位图数值为预设数值时,获取读取到的位图数值在数据位图中的数值位置。

候选位置确定模块,用于在数据存储列表中确定与数值位置对应的存储位置,以确定的存储位置作为待查询数据集合中的待查询数据在数据存储列表中的候选位置。

本实施例中,按照位图数值存储顺序依次读取提取到的数据位图中的位图数值,当读取到的位图数值为预设数值时,获取读取到的位图数值在数据位图中的数值位置,在数据存储列表中确定与数值位置对应的存储位置,以确定的存储位置作为待查询数据集合中的待查询数据在数据存储列表中的候选位置。当在数据位图中读取到为预设数值的位图数值时,才去读取数据存储列表,减少了需要读取的数据存储列表数量,提升了查询速度。

在一个实施例中,位图生成模块810包括:数据读取模块、数据查询模块和数值调整模块,其中:

数据读取模块,用于在数据存储列表中读取与候选位置对应的存储数据。

数据查询模块,用于查询待查询数据集合中与读取到的存储数据匹配的待查询数据。

数值调整模块,用于当查询到与读取到的存储数据匹配的待查询数据时,将初始位图中与读取到的存储数据对应的数值调整为预定数值,得到待查询数据集合对应的查询结果位图。

本实施例中,在数据存储列表中读取与候选位置对应的存储数据,查询待查询数据集合中与读取到的存储数据匹配的待查询数据,当查询到与读取到的存储数据匹配的待查询数据时,确定读取到的存储数据是待查询数据,提高了查询待查询数据的准确性;将初始位图中与读取到的存储数据对应的数值调整为预定数值,得到待查询数据集合对应的查询结果位图,提高了得到查询结果位图的准确性。

关于位图数据查询装置的具体限定可以参见上文中对于位图数据查询方法的限定,在此不再赘述。上述位图数据查询装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储用于位图数据查询过程中所需的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种位图数据查询方法。

本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取数据查询指令;根据数据查询指令提取数据存储列表,及数据存储列表中部分数据对应的数据位图;提取数据查询指令中的待查询数据,得到待查询数据集合;根据提取到的数据位图,确定待查询数据集合中的待查询数据在数据存储列表中的候选位置;根据候选位置得到待查询数据集合对应的查询结果位图。

在一个实施例中,获取数据查询指令之前,处理器执行计算机程序时还实现以下步骤:获取各待存储数据;将各待存储数据存储到数据存储列表,并统计各待存储数据的存储频率;筛选存储频率大于等于预设存储频率的存储数据;根据筛选到的存储数据和数据存储列表,构建筛选到的存储数据对应的数据位图。

在一个实施例中,根据数据查询指令提取数据存储列表,及数据存储列表中部分数据对应的数据位图包括:提取数据查询指令中的数据存储列表标识;根据数据存储列表标识,查询数据存储列表;确定数据存储列表中存储频率大于等于预设存储频率的存储数据;获取与确定的存储数据对应的数据位图。

在一个实施例中,根据提取到的数据位图,确定待查询数据集合中的待查询数据在数据存储列表中的候选位置包括:按照位图数值存储顺序依次读取提取到的数据位图中的位图数值;当读取到的位图数值为预设数值时,获取读取到的位图数值在数据位图中的数值位置;在数据存储列表中确定与数值位置对应的存储位置,以确定的存储位置作为待查询数据集合中的待查询数据在数据存储列表中的候选位置。

在一个实施例中,根据候选位置得到待查询数据集合对应的查询结果位图包括:在数据存储列表中读取与候选位置对应的存储数据;查询待查询数据集合中与读取到的存储数据匹配的待查询数据;当查询到与读取到的存储数据匹配的待查询数据时,将初始位图中与读取到的存储数据对应的数值调整为预定数值,得到待查询数据集合对应的查询结果位图。

本实施例中,通过数据查询指令、数据存储列表、数据存储列表中部分数据集合对应的数据位图和从数据查询指令中提取的待查询数据集合,读取数据存储列表中部分数据集合对应的数据位图,无需读取全部数据存储列表,在读取到的数据存储列表中查询待查询数据集合中的待查询数据,根据待查询数据在数据存储列表中的候选位置得到待查询数据集合对应的查询结果位图,减少了需要读取的位图数量和存储列表数量,提升了位图数据的查询效率。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取数据查询指令;根据数据查询指令提取数据存储列表,及数据存储列表中部分数据对应的数据位图;提取数据查询指令中的待查询数据,得到待查询数据集合;根据提取到的数据位图,确定待查询数据集合中的待查询数据在数据存储列表中的候选位置;根据候选位置得到待查询数据集合对应的查询结果位图。

在一个实施例中,获取数据查询指令之前,计算机程序被处理器执行时还实现以下步骤:获取各待存储数据;将各待存储数据存储到数据存储列表,并统计各待存储数据的存储频率;筛选存储频率大于等于预设存储频率的存储数据;根据筛选到的存储数据和数据存储列表,构建筛选到的存储数据对应的数据位图。

在一个实施例中,根据数据查询指令提取数据存储列表,及数据存储列表中部分数据对应的数据位图包括:提取数据查询指令中的数据存储列表标识;根据数据存储列表标识,查询数据存储列表;确定数据存储列表中存储频率大于等于预设存储频率的存储数据;获取与确定的存储数据对应的数据位图。

在一个实施例中,根据提取到的数据位图,确定待查询数据集合中的待查询数据在数据存储列表中的候选位置包括:按照位图数值存储顺序依次读取提取到的数据位图中的位图数值;当读取到的位图数值为预设数值时,获取读取到的位图数值在数据位图中的数值位置;在数据存储列表中确定与数值位置对应的存储位置,以确定的存储位置作为待查询数据集合中的待查询数据在数据存储列表中的候选位置。

在一个实施例中,根据候选位置得到待查询数据集合对应的查询结果位图包括:在数据存储列表中读取与候选位置对应的存储数据;查询待查询数据集合中与读取到的存储数据匹配的待查询数据;当查询到与读取到的存储数据匹配的待查询数据时,将初始位图中与读取到的存储数据对应的数值调整为预定数值,得到待查询数据集合对应的查询结果位图。

本实施例中,通过数据查询指令、数据存储列表、数据存储列表中部分数据集合对应的数据位图和从数据查询指令中提取的待查询数据集合,读取数据存储列表中部分数据集合对应的数据位图,无需读取全部数据存储列表,在读取到的数据存储列表中查询待查询数据集合中的待查询数据,根据待查询数据在数据存储列表中的候选位置得到待查询数据集合对应的查询结果位图,减少了需要读取的位图数量和存储列表数量,提升了位图数据的查询效率。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1