数据库访问方法及装置制造方法及图纸

技术编号:24331080 阅读:29 留言:0更新日期:2020-05-29 19:37
本发明专利技术提供了一种数据库访问方法及装置,其中,该方法包括:接收SQL语句并获取其类型;若为修改类型,则发送该SQL语句的修改相关信息,以使硬件数据库根据该修改相关信息执行修改操作但不返回修改操作结果;若为查询类型,则发送该SQL语句的查询相关信息,以使硬件数据库根据该查询相关信息执行查询操作并按时机要求返回查询操作结果;若该SQL语句的类型为修改类型,则执行该SQL语句的修改操作,生成修改操作结果;若该SQL语句的类型为查询类型,则接收按时机要求返回的查询操作结果;根据生成的修改操作结果或接收的查询操作结果生成该SQL语句对应的执行结果,并输出该执行结果。通过上述方案能够节省数据传输所占用带宽,并更好地保持数据库一致性。

【技术实现步骤摘要】
数据库访问方法及装置
本专利技术涉及计算机
,尤其涉及一种数据库访问方法及装置。
技术介绍
随着数字社会的到来,在各种应用场景中,对海量数据的调取均愈发频繁,对数据库加速处理的需求更丰富,对数据即时处理的需求也大大增加,因此数据库加速迫在眉睫。由于CPU(CentralProcessingUnit,中央处理器)在某些专用领域的性能不够出色,当前阶段趋于采用CPU作为宿主端,并利用GPU(GraphicsProcessingUnit,图形处理器)、FPGA(FieldProgrammableGateArray,现场可编程门阵列)、ASIC(ApplicationSpecificIntegratedCircuit,专用集成电路)等高性能专用硬件加速数据库处理过程,这样的数据库系统整体上是一个异构系统。专用硬件数据库相比于通常的CPU上运行的数据库,具有很高的性能。但专用硬件是一个协处理器,仍然必须由CPU将待处理数据传输到专用硬件,专用硬件数据库将处理完得到的结果再返回给CPU,供显示或写进磁盘数据库。如此一来,不仅会占用较多的传输带宽,而且很容易导致CPU上的数据库和硬件上数据库出现不一致。
技术实现思路
有鉴于此,本专利技术提供了一种数据库访问方法及装置,以节省软件数据库和硬件数据库之间的数据传输所占用的带宽,并更好地保持软件数据库和硬件数据库的一致性。为了达到上述目的,本专利技术采用以下方案实现:根据本专利技术实施例的一个方面,提供了一种数据库访问方法,包括:接收SQL语句,并获取所述SQL语句的类型;若所述SQL语句的类型为修改类型,则发送所述SQL语句的修改相关信息,以使硬件数据库根据所述修改相关信息执行修改操作但不返回修改操作结果;若所述SQL语句的类型为查询类型,则发送所述SQL语句的查询相关信息,以使硬件数据库根据所述查询相关信息执行查询操作并按时机要求返回查询操作结果;若所述SQL语句的类型为修改类型,则执行所述SQL语句的修改操作,生成修改操作结果;若所述SQL语句的类型为查询类型,则接收按时机要求返回的查询操作结果;根据生成的修改操作结果或接收的查询操作结果生成所述SQL语句对应的执行结果,并输出所述执行结果。在一些实施例中,接收SQL语句,并获取所述SQL语句的类型,包括:接收SQL语句,解析所述SQL语句,并根据解析后的SQL语句中的操作关键词得到所述SQL语句的类型。在一些实施例中,接收SQL语句,解析所述SQL语句,并根据解析后的SQL语句中的操作关键词得到所述SQL语句的类型,包括:接收SQL语句,并解析所述SQL语句,得到至少一个解析后的SQL语句;其中,每个解析后的SQL语句中的各操作关键词为同种类型;根据解析后的SQL语句中的操作关键词所属类型得到相应的SQL语句的类型。在一些实施例中,接收SQL语句,每个解析后的SQL语句包含一个操作关键词。在一些实施例中,若所述SQL语句的类型为修改类型,则发送所述SQL语句的修改相关信息,包括:若所述SQL语句的类型为修改类型,则根据已缓存至本地内存的所述SQL语句涉及的数据表、对应修改类型生成的执行不返回指令、及所述SQL语句的操作内容生成所述SQL语句的修改相关信息,并发送所述修改相关信息。在一些实施例中,若所述SQL语句的类型为修改类型,则根据已缓存至本地内存的所述SQL语句涉及的数据表、对应修改类型生成的执行不返回指令、及所述SQL语句的操作内容生成所述SQL语句的修改相关信息,并发送所述修改相关信息,包括:若所述SQL语句的类型为修改类型,则根据所述SQL语句的操作内容将存储的所述SQL语句涉及的数据表缓存至本地内存,并根据已缓存至本地内存的所述SQL语句涉及的数据表、对应修改类型生成的执行不返回指令、及所述SQL语句的操作内容生成所述SQL语句的修改相关信息,并发送所述修改相关信息。在一些实施例中,接收SQL语句,并获取所述SQL语句的类型之前,所述方法还包括:将本地存储的所有数据表缓存至本地内存。若所述SQL语句的类型为修改类型,则根据已缓存至本地内存的所述SQL语句涉及的数据表、对应修改类型生成的执行不返回指令、及所述SQL语句的操作内容生成所述SQL语句的修改相关信息,并发送所述修改相关信息,包括:若所述SQL语句的类型为修改类型,则从缓存至本地内存的所有数据表中查找所述SQL语句涉及的数据表,并根据查找到的所述SQL语句涉及的数据表、对应修改类型生成的执行不返回指令、及所述SQL语句的操作内容生成所述SQL语句的修改相关信息,并发送所述修改相关信息。在一些实施例中,若所述SQL语句的类型为修改类型,则根据所述SQL语句的操作内容将存储的所述SQL语句涉及的数据表缓存至本地内存,并根据已缓存至本地内存的所述SQL语句涉及的数据表、对应修改类型生成的执行不返回指令、及所述SQL语句的操作内容生成所述SQL语句的修改相关信息,并发送所述修改相关信息,包括:若所述SQL语句的类型为修改类型,且本地内存已满,则释放对应操作内容已执行完成且最早缓存至本地内存的数据表后,根据所述SQL语句的操作内容将存储的所述SQL语句涉及的数据表缓存至本地内存,并根据已缓存至本地内存的所述SQL语句涉及的数据表、对应修改类型生成的执行不返回指令、及所述SQL语句的操作内容生成所述SQL语句的修改相关信息,并发送所述修改相关信息。在一些实施例中,若所述SQL语句的类型为查询类型,则发送所述SQL语句的查询相关信息,包括:若所述SQL语句的类型为查询类型,则根据所述SQL语句的操作内容、及对应查询类型生成的执行并按时机要求返回结果的指令生成所述SQL语句的查询相关信息,并发送所述查询相关信息。在一些实施例中,根据所述SQL语句的操作内容、及对应查询类型生成的执行并按时机要求返回结果的指令生成所述SQL语句的查询相关信息,并发送所述查询相关信息,包括:根据已缓存至本地内存的所述SQL语句涉及的数据表、所述SQL语句的操作内容、及对应查询类型生成的执行并按时机要求返回结果的指令生成所述SQL语句的查询相关信息。或者,接收SQL语句,并获取所述SQL语句的类型之前,所述方法还包括:将本地存储的所有数据表缓存至本地内存,并发送所述所有数据表,以使硬件数据库缓存所述所有数据表。在一些实施例中,所述时机要求为执行完查询操作即返回查询操作结果或执行完查询操作后暂时不返回查询操作结果。在一些实施例中,所述时机要求为执行完查询操作后暂时不返回查询操作结果的情况下,若所述SQL语句的类型为修改类型,则执行所述SQL语句的修改操作,生成修改操作结果之前,所述方法还包括:在达到时机要求时,发送返回结果指令,以使所述硬件数据库返回查询操作结果。在一些实施例中,若所述SQL语句的类型为修改类型,则执行所述SQL语句的修改操作,包括:若所述SQL语句的类型为修改类型,则根据所述SQL语句的操作内容将存储的所述SQL语句涉及的数据表缓存至本地内存或从已缓存至本地内存的所有数据表中查找本文档来自技高网...

【技术保护点】
1.一种数据库访问方法,其特征在于,包括:/n接收SQL语句,并获取所述SQL语句的类型;/n若所述SQL语句的类型为修改类型,则发送所述SQL语句的修改相关信息,以使硬件数据库根据所述修改相关信息执行修改操作但不返回修改操作结果;若所述SQL语句的类型为查询类型,则发送所述SQL语句的查询相关信息,以使硬件数据库根据所述查询相关信息执行查询操作并按时机要求返回查询操作结果;/n若所述SQL语句的类型为修改类型,则执行所述SQL语句的修改操作,生成修改操作结果;若所述SQL语句的类型为查询类型,则接收按时机要求返回的查询操作结果;/n根据生成的修改操作结果或接收的查询操作结果生成所述SQL语句对应的执行结果,并输出所述执行结果。/n

【技术特征摘要】
1.一种数据库访问方法,其特征在于,包括:
接收SQL语句,并获取所述SQL语句的类型;
若所述SQL语句的类型为修改类型,则发送所述SQL语句的修改相关信息,以使硬件数据库根据所述修改相关信息执行修改操作但不返回修改操作结果;若所述SQL语句的类型为查询类型,则发送所述SQL语句的查询相关信息,以使硬件数据库根据所述查询相关信息执行查询操作并按时机要求返回查询操作结果;
若所述SQL语句的类型为修改类型,则执行所述SQL语句的修改操作,生成修改操作结果;若所述SQL语句的类型为查询类型,则接收按时机要求返回的查询操作结果;
根据生成的修改操作结果或接收的查询操作结果生成所述SQL语句对应的执行结果,并输出所述执行结果。


2.如权利要求1所述的数据库访问方法,其特征在于,接收SQL语句,并获取所述SQL语句的类型,包括:
接收SQL语句,解析所述SQL语句,并根据解析后的SQL语句中的操作关键词得到所述SQL语句的类型。


3.如权利要求2所述的数据库访问方法,其特征在于,接收SQL语句,解析所述SQL语句,并根据解析后的SQL语句中的操作关键词得到所述SQL语句的类型,包括:
接收SQL语句,并解析所述SQL语句,得到至少一个解析后的SQL语句;其中,每个解析后的SQL语句中的各操作关键词为同种类型;
根据解析后的SQL语句中的操作关键词所属类型得到相应的SQL语句的类型。


4.如权利要求3所述的数据库访问方法,其特征在于,接收SQL语句,每个解析后的SQL语句包含一个操作关键词。


5.如权利要求1所述的数据库访问方法,其特征在于,若所述SQL语句的类型为修改类型,则发送所述SQL语句的修改相关信息,包括:
若所述SQL语句的类型为修改类型,则根据已缓存至本地内存的所述SQL语句涉及的数据表、对应修改类型生成的执行不返回指令、及所述SQL语句的操作内容生成所述SQL语句的修改相关信息,并发送所述修改相关信息。


6.如权利要求5所述的数据库访问方法,其特征在于,若所述SQL语句的类型为修改类型,则根据已缓存至本地内存的所述SQL语句涉及的数据表、对应修改类型生成的执行不返回指令、及所述SQL语句的操作内容生成所述SQL语句的修改相关信息,并发送所述修改相关信息,包括:
若所述SQL语句的类型为修改类型,则根据所述SQL语句的操作内容将存储的所述SQL语句涉及的数据表缓存至本地内存,并根据已缓存至本地内存的所述SQL语句涉及的数据表、对应修改类型生成的执行不返回指令、及所述SQL语句的操作内容生成所述SQL语句的修改相关信息,并发送所述修改相关信息。


7.如权利要求5所述的数据库访问方法,其特征在于,
接收SQL语句,并获取所述SQL语句的类型之前,所述方法还包括:
将本地存储的所有数据表缓存至本地内存;
若所述SQL语句的类型为修改类型,则根据已缓存至本地内存的所述SQL语句涉及的数据表、对应修改类型生成的执行不返回指令、及所述SQL语句的操作内容生成所述SQL语句的修改相关信息,并发送所述修改相关信息,包括:
若所述SQL语句的类型为修改类型,则从缓存至本地内存的所有数据表中查找所述SQL语句涉及的数据表,并根据查找到的所述SQL语句涉及的数据表、对应修改类型生成的执行不返回指令、及所述SQL语句的操作内容生成所述SQL语句的修改相关信息,并发送所述修改相关信息。


8.如权利要求6所述的数据库访问方法,其特征在于,若所述SQL语句的类型为修改类型,则根据所述SQL语句的操作内容将存储的所述SQL语句涉及的数据表缓存至本地内存,并根据已缓存至本地内存的所述SQL语句涉及的数据表、对应修改类型生成的执行不返回指令、及所述SQL语句的操作内容生成所述SQL语句的修改相关信息,并发送所述修改相关信息,包括:
若所述SQL语句的类型为修改类型,且本地内存已满,则释放对应操作内容已执行完成且最早缓存至本地内存的数据表后,根据所述SQL语句的操作内容将存储的所述SQL语句涉及的数据表缓存至本地内存,并根据已缓存至本地内存的所述SQL语句涉及的数据表、对应修改类型生成的执行不返回指令、及所述SQL语句的操作内容生成所述SQL语句的修改相关信息,并发送所述修改相关信息。


9.如权利要求1所述的数据库访问方法,其特征在于,若所述SQL语句的类型为查询类型,则发送所述SQL语句的查询相关信息,包括:
若所述SQL语句的类型为查询类型,则根据所述SQL语句的操作内容、及对应查询类型生成的执行并按时机要求返回结果的指令生成所述SQL语句的查询相关信息,并发送所述查询相关信息。


10.如权利要求9所述的数据库访问方法,其特征在于...

【专利技术属性】
技术研发人员:鄢贵海周康康易广庆江树浩
申请(专利权)人:中科驭数北京科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1