查询数据库的方法和装置的制造方法

文档序号:9646623阅读:695来源:国知局
查询数据库的方法和装置的制造方法
【技术领域】
[0001]本发明涉及终端领域,尤其涉及终端领域中查询数据库的方法和装置。
【背景技术】
[0002]随着互联网技术和终端技术的快速发展,终端中的数据库在进行大数据处理时遇到了技术瓶颈。随着终端设备的普及,用户访问和接收的数据量不断增大,用户访问数据库(例如,用户访问终端中的基础联系人或图库)的时间开销也随之增加。查询数据库所花费的时间开销已成为导致终端系统反应缓慢以及卡顿的瓶颈问题,
[0003]现有技术中,存在利用图形处理器(Graphics Processing Unit,GPU)加速的查询嵌入式数据库(例如,SQLite)的方法,该查询方法可以减少查询数据库的时间开销,但是需要对底层存储结构进行替换,对现有数据库改动较大,且实现粒度较粗,不支持较为复杂的数据库查询命令,所以现有技术中的查询数据库的方法的效率较低,不适合真实使用场景。

【发明内容】

[0004]本发明实施例提供了一种查询数据库的方法和装置,以提高查询数据库的效率。
[0005]第一方面,本发明实施例提供了一种查询数据库的方法,该方法包括:获取数据库的查询语句,该数据库为终端内的数据库,该查询语句包括多个查询操作,该终端包括中央处理器CPU,以及除该CPU之外的其它类型的处理芯片;生成该查询语句对应的有向无环图DAG,该DAG包括多个节点,该多个节点中的每个节点对应该查询语句中的一个查询操作,该DAG中的各节点之间的连接关系用于指示该各节点对应的查询操作之间的依赖关系;从该数据库中获取执行该DAG中的节点对应的查询操作所需的原始数据;基于该DAG和该原始数据,执行该DAG中的节点对应的查询操作,得到查询结果,其中该DAG中的至少部分节点对应的查询操作由该处理芯片执行;将该查询结果返回该数据库。
[0006]在本发明实施例中,在获取数据库的查询语句之后,生成该查询语句对应的DAG,该DAG中的节点对应查询语句中的查询操作。基于该DAG,利用CPU和处理芯片中的至少一个处理器执行DAG中节点对应的查询操作,从而利用DAG架构执行查询语句中包含的查询操作,能够细粒度的向处理器分配操作任务,提高了查询数据库的效率。
[0007]结合第一方面,在第一方面的第一种可能的实现方式中,该处理芯片适于并行处理,该基于该DAG和该原始数据,执行该DAG中的节点对应的查询操作,包括:从该DAG中确定至少一个目标节点,该至少一个目标节点中的每个目标节点对应的查询操作适于进行并行处理;基于该DAG和该原始数据,利用该处理芯片对该每个目标节点对应的查询操作进行并行处理;利用该CPU执行该DAG中的除该目标节点之外的节点对应的查询操作。
[0008]在本发明实施例中,在执行查询数据库的任务时,细粒度的分配DAG中的节点对应的操作任务,以提高处理芯片的利用率,同时提高了查询数据库的效率,减少了查询数据库的时间开销。
[0009]结合第一方面的第一种实现方式,在第一方面的第二种可能的实现方式中,该从该DAG中确定至少一个目标节点,该至少一个目标节点中的每个目标节点对应的查询操作适于进行并行处理,包括:确定该DAG中的多个节点中的每个节点对应的查询操作的依赖关系;将不具有依赖关系的查询操作对应的节点确定为该目标节点。
[0010]结合第一方面、第一方面的第一种或第二种可能的实现方式,在第一方面的第三种可能的实现方式中,基于该DAG和该原始数据,执行该DAG中的节点对应的查询操作,包括:确定该DAG中的节点之间是否存在依赖关系;并行执行该DAG中互相不存在依赖关系的节点对应的查询操作。
[0011]在本发明实施例中,通过并行处理多个不存在依赖关系的节点对应的查询操作,减少了查询数据库的时间开销,提高了查询数据库的效率。
[0012]结合第一方面、第一方面的第一种至第三种可能的实现方式中的任一种可能的实现方式,在第一方面的第四种可能的实现方式中,该处理芯片包括以下处理芯片中的至少一种:GPU、现场可编程门阵列FPGA和数字信号处理器DSP。
[0013]结合第一方面、第一方面的第一种至第四种可能的实现方式中的任一种可能的实现方式,在第一方面的第五种可能的实现方式中,该终端为移动终端。
[0014]第二方面,本发明实施例提供了一种查询数据库的装置,该装置包括:获取模块,用于获取数据库的查询语句,该数据库为终端内的数据库,该查询语句包括多个查询操作,该终端包括中央处理器CPU,以及除该CPU之外的其它类型的处理芯片;生成模块,用于生成该查询语句对应的有向无环图DAG,该DAG包括多个节点,该多个节点中的每个节点对应该查询语句中的一个查询操作,该DAG中的各节点之间的连接关系用于指示该各节点对应的查询操作之间的依赖关系;数据模块,用于从该数据库中获取执行该DAG中的节点对应的查询操作所需的原始数据;执行模块,用于基于该DAG和该原始数据,执行该DAG中的节点对应的查询操作,得到查询结果,其中该DAG中的至少部分节点对应的查询操作由该处理芯片执行;返回模块,用于将该查询结果返回该数据库。
[0015]结合第二方面,在第二方面的第一种可能的实现方式中,该处理芯片适于并行处理,该执行模块具体用于从该DAG中确定至少一个目标节点,该至少一个目标节点中的每个目标节点对应的查询操作适于进行并行处理;基于该DAG和该原始数据,利用该处理芯片对该每个目标节点对应的查询操作进行并行处理;利用该CPU执行该DAG中的除该目标节点之外的节点对应的查询操作。
[0016]结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,该执行模块具体用于:确定该DAG中的多个节点中的每个节点对应的查询操作的依赖关系;将不具有依赖关系的查询操作对应的节点确定为该目标节点。
[0017]结合第二方面、第二方面的第一种或第二种可能的实现方式,在第二方面的第三种可能的实现方式中,该执行模块具体用于:确定该DAG中的节点之间是否存在依赖关系;利用该CPU和该处理芯片中的至少一个处理器并行执行该DAG中互相不存在依赖关系的节点对应的查询操作。
[0018]结合第二方面、第二方面的第一种至第三种可能的实现方式中的任一种可能的实现方式,在第二方面的第四种可能的实现方式中,该处理芯片包括以下处理芯片中的至少一种:GPU、现场可编程门阵列FPGA和数字信号处理器DSP。
[0019]结合第二方面、第二方面的第一种至第四种可能的实现方式中的任一种可能的实现方式,在第二方面的第五种可能的实现方式中,该终端为移动终端。
【附图说明】
[0020]为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0021]图1是根据本发明实施例的查询数据库的方法的示意性流程图。
[0022]图2是根据本发明实施例的查询数据库的装置的架构示意图。
[0023]图3是根据本发明实施例的查询数据库的方法的数据流向示意图。
[0024]图4是根据本发明实施例的查询数据库的方法的具体实施例的示意图。
[0025]图5是根据本发明实施例的查询数据库的方法的另一具体实施例的示意图。
[0026]图6是根据本发明实施例的查询数据库的装置的示意图。
[0027]图7是根据本发明另一实施例的查询数据库的装置的示意图。
【具体实施方式】
[0028]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
[0029]应理解,本发明实施例的查询数据库的方法可以应用于终端(Mobile Terminal),所述终端可以为移动终端(Terminal)、移动台(Mobile Stat1n,简称为“MS”)或用户设备(User Equipment,简称为“UE”)等。所述终端可以经无线接入网(Rad1 Access Network,简称为“RAN”)与一个或多个核心网进行通信,例如,终端可以是移动电话(或称为“蜂窝”电话)。例如,所述终端还可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置。
[0030]图1示出了本发明实施例的一种查询数据库的方法100的示意性流程图,如图1所示,该方法100包括:
[0031]S110,获取数据库的查询语句,该数据库为终端内的数据库,该查询语句包括多个查询操作,该终端包括中央处理器CP
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1