一种SQL转发方法、装置及可读存储介质制造方法及图纸

技术编号:27289148 阅读:14 留言:0更新日期:2021-02-06 11:57
本发明专利技术公开了一种SQL转发方法、装置及可读存储介质,其中方法包括解析结构化查询语言SQL,确定对应的操作类型;按照预设规则根据所述操作类型转发所述SQL执行查询。本发明专利技术方法根据确定SQL对应的操作类型,按照预设规则根据所述操作类型转发所述SQL执行查询,由此实现有针对性地转发SQL进行查询,解决了现有技术中存在的查询效率低下,系统响应时间变长的问题。问题。问题。

【技术实现步骤摘要】
一种SQL转发方法、装置及可读存储介质


[0001]本专利技术涉及数据库
,尤其涉及一种SQL转发方法、装置及可读存储介质。

技术介绍

[0002]现有技术中在进行SQL转发时,同一个事务的不同读写语句会被发送至不同的节点运行,而数据可能未及时同步,这造成了查询效率低下,系统响应时间变长,用户体验不好。

技术实现思路

[0003]本专利技术实施例提供一种SQL转发方法、装置及可读存储介质,用以解决现有技术中存在的查询效率低下,系统响应时间长的问题。
[0004]第一方面,本专利技术实施例提供一种结构化查询语言转发方法,包括:
[0005]通过解析结构化查询语言SQL,确定对应的操作类型;
[0006]按照预设规则根据所述操作类型转发所述SQL以执行查询。
[0007]可选的,解析结构化查询语言SQL之前,还包括:
[0008]根据接收到的测试连接中数据库驱动对应的连接串对SQL转发进行初始化。
[0009]可选的,在通过所述连接串确定所述数据库驱动开启了SQL转发功能的情况下,根据接收到的测试连接中数据库驱动对应的连接串对SQL转发进行初始化,包括:
[0010]建立与所述连接串对应的主节点之间的主连接;
[0011]基于所述主连接执行SQL查询;
[0012]根据SQL查询结果,确定当前节点集群中的图表映射关系,并根据节点负载情况选取备用节点;
[0013]所述备用节点,用于在不转发所述SQL的情况下执行查询。r/>[0014]可选的,根据接收到的测试连接中的数据库驱动对应的连接串进行初始化,包括:
[0015]读取所述连接串中对应的预设参数配置的全局缓存;
[0016]将出现于所述全局缓存中的所述SQL配置为转发至主节点执行查询。
[0017]可选的,按照预设规则根据所述操作类型转发所述SQL执行查询,包括:
[0018]在确定所述操作类型包含写操作的情况下,将所述SQL转发至主节点执行查询;
[0019]在确定所述操作类型包含读操作的情况下,则根据所述SQL是否包含目标关键对象确定是否转发所述SQL。
[0020]可选的,根据所述SQL是否包含目标关键对象确定是否执行转发,包括:
[0021]若所述SQL中包含全局缓存或临时缓存中的目标关键对象,则将所述SQL转发至所述主节点执行查询;
[0022]否则,不转发所述SQL,通过备用节点执行查询。
[0023]可选的,在确定所述操作类型包含写操作后,按照预设规则根据所述操作类型转发所述SQL执行查询,还包括:
[0024]若根据当前数据库驱动确定临时缓存未生效,则直接将所述SQL转发至主节点执行查询;
[0025]若根据当前数据库驱动确定临时缓存生效,则根据所述SQL解析获得所述写操作对应的数据表,通过预设图表映射关系确定与所述数据表匹配的视图,并将所述数据表以及所述视图写入所述临时缓存中。
[0026]可选的,解析结构化查询语言SQL之前,还包括:
[0027]若确定所述SQL对应的数据库驱动未开启SQL转发功能,则不执行SQL转发;
[0028]在确定所述SQL对应的数据库驱动开启SQL转发功能后,则在所述SQL对应的预处理语句为begin的情况下,解析结构化查询语言SQL;或者,在所述SQL对应的预处理语句为end的情况下,清理临时缓存且不执行SQL转发。
[0029]第二方面,本专利技术实施例提供一种结构化查询语言转发装置,包括:
[0030]解析模块,用于解析结构化查询语言SQL,确定对应的操作类型;
[0031]转发模块,用于按照预设规则根据所述操作类型转发所述SQL执行查询。
[0032]第三方面,本专利技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述的结构化查询语言转发方法的步骤。
[0033]本专利技术实施例通过解析结构化查询语言SQL,确定对应的操作类型,按照预设规则根据所述操作类型转发所述SQL执行查询,由此实现有针对性地转发SQL进行查询,解决了现有技术中存在的查询效率低下,系统响应时间变长的问题。
[0034]上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。
附图说明
[0035]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0036]图1为本专利技术第一实施例基本流程图;
[0037]图2为本专利技术第一实施例初始化流程图;
[0038]图3为本专利技术第一实施例总流程图;
[0039]图4为本专利技术第一实施例逻辑流程图。
具体实施方式
[0040]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0041]本专利技术第一实施例提供结构化查询语言转发方法,如图1所示,包括以下具体步骤:
[0042]S101、通过解析结构化查询语言SQL,确定对应的操作类型;
[0043]S102、按照预设规则根据所述操作类型转发所述SQL以执行查询。
[0044]现有技术在进行SQL转发时,同一个事务的不同读写语句会被发送至不同的节点运行,而数据可能未及时同步,所以本实施例中根据操作类型将查询语句进行划分,使得在保证数据一致性的情况下,将查询语句发送到对应的节点执行查询。本专利技术实施例通过解析结构化查询语言SQL,确定对应的操作类型,按照预设规则根据所述操作类型转发所述SQL执行查询,由此实现有针对性地转发SQL进行查询,解决了现有技术中存在的查询效率低下,系统响应时间变长的问题。
[0045]可选的,解析结构化查询语言SQL之前,所述方法还包括:
[0046]根据接收到的测试连接中数据库驱动对应的连接串对SQL转发进行初始化。
[0047]具体的说,本实施例中,在解析结构化查询语言SQL之前,还可以根据接收到的测试连接中数据库驱动对应的连接串对SQL转发流程进行初始化,初始化的目的是为了实现与对应的操作类型进行匹配,从而识别操作类型是否包含设定的操作类型。
[0048]可选的,在通过所述连接串确定所述数据库驱动开启了SQL转发功能的情况下,根据接收到的测试连接中数据库驱动对应的连接串对SQL转发进行初始化,包括:
[0049]建立与所述连接串对应本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种结构化查询语言转发方法,其特征在于,包括:通过解析结构化查询语言SQL,确定对应的操作类型;按照预设规则根据所述操作类型转发所述SQL以执行查询。2.如权利要求1所述的结构化查询语言转发方法,其特征在于,解析结构化查询语言SQL之前,所述方法还包括:根据接收到的测试连接中数据库驱动对应的连接串对SQL转发进行初始化。3.如权利要求2所述的结构化查询语言转发方法,其特征在于,在通过所述连接串确定所述数据库驱动开启了SQL转发功能的情况下,根据接收到的测试连接中数据库驱动对应的连接串对SQL转发进行初始化,包括:建立与所述连接串对应的主节点之间的主连接;基于所述主连接执行SQL查询;根据SQL查询结果,确定当前节点集群中的图表映射关系,并根据节点负载情况选取备用节点;所述备用节点,用于在不转发所述SQL的情况下执行查询。4.如权利要求2所述的结构化查询语言转发方法,其特征在于,根据接收到的测试连接中的数据库驱动对应的连接串进行初始化,包括:读取所述连接串中对应的预设参数配置的全局缓存;将出现于所述全局缓存中的所述SQL配置为转发至主节点执行查询。5.如权利要求1所述的结构化查询语言转发方法,其特征在于,按照预设规则根据所述操作类型转发所述SQL执行查询,包括:在确定所述操作类型包含写操作的情况下,将所述SQL转发至主节点执行查询;在确定所述操作类型包含读操作的情况下,则根据所述SQL是否包含目标关键对象确定是否转发所述SQL。6.如权利要求5所述的结构化查询语言转发方法,其特征在于,根据所述SQL是否包含目标关键对象确定是否执行转发...

【专利技术属性】
技术研发人员:冯路张元超常晓丽张鲁敏卢健
申请(专利权)人:瀚高基础软件股份有限公司
类型:发明
国别省市:

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

1