掌桥专利:专业的专利平台
掌桥专利
首页

一种数据库操作优化方法及其系统

文献发布时间:2023-06-19 09:35:27


一种数据库操作优化方法及其系统

技术领域

本发明涉及数据库技术领域,特别涉及一种数据库操作优化方法及其系统。

背景技术

数据库是一种广泛应用的数据管理软件,提供数据的增删改查服务。

目前数据库操作指令如SQL语句都是由用户自己编写,然后发给数据库执行后返回操作结果给用户,由于数据库涉及索引等关键技术,不同的查询语句由于使用索引不当可能会引起查询效率低下等多种影响。

发明内容

本发明要解决的技术问题在于,提供一种数据库操作优化方法及其系统,本发明通过代理模块对数据库查询语句进行修正优化,提升了数据库查询效率;另外,通过独立的代理模块对数据库查询语句进行筛选,大大降低了数据库的运行损耗,并减少了数据库的运算负担。

为解决上述技术问题,本发明提供如下技术方案:一种数据库操作优化方法,包括以下步骤:

步骤S1、代理模块接收用户发送过来的SQL查询语句;代理模块根据其自身的索引信息表格,识别SQL查询语句中是否有对索引信息表格的索引字段进行查询;若有则代理模块直接将SQL查询语句发送给数据库;若无,则代理模块判断SQL查询语句是否符合数据库的索引规则;若SQL查询语句符合数据库的索引规则,则代理模块将SQL查询语句发送至数据库;若SQL查询语句不符合数据库的索引规则,则代理模块将SQL查询语句中不符合规则的查询字符进行调整使其符合数据库的索引规则,并形成新的SQL查询语句,将SQL查询语句发送至数据库;

步骤S2、数据库收到SQL查询语句后,根据SQL查询语句,返回数据库的执行结果给代理模块;

步骤S3、代理模块将执行结果发送给用户。

本发明另一目的是提供一种数据库操作优化系统,包括相互连接的代理模块和数据库模块;

所述代理模块用于:接收用户发送过来的SQL查询语句;代理模块根据其自身的索引信息表格,识别SQL查询语句中是否有对索引信息表格的索引字段进行查询;若有则代理模块直接将SQL查询语句发送给数据库模块;若无,则代理模块判断SQL查询语句是否符合数据库模块的索引规则;若SQL查询语句符合数据库模块的索引规则,则代理模块将SQL查询语句发送至数据库模块;若SQL查询语句不符合数据库模块的索引规则,则代理模块将SQL查询语句中不符合规则的查询字符进行调整使其符合数据库模块的索引规则,并形成新的SQL查询语句,将SQL查询语句发送至数据库模块;

所述数据库模块用于接收SQL查询语句后,根据SQL查询语句,返回数据库模块的执行结果给代理模块;

所述代理模块还用于将执行结果发送给用户。

采用上述技术方案后,本发明至少具有如下有益效果:本发明通过在数据库与用户之间搭建一个代理模块,代理模块负责转发来自于用户的请求和返回数据库执行结果,除此之外还能识别一些存在有优化空间的SQL语句,比如未能正确使用索引等,对语句进行修正优化,不仅不影响查询结果还能提升查询效率;另外,通过独立的代理模块对数据库查询语句进行筛选,大大降低了数据库的运行损耗,并减少了数据库的运算负担。

附图说明

图1为本发明一种数据库操作优化方法的步骤流程图。

图2为本发明一种数据库操作优化系统的框架图。

具体实施方式

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互结合,下面结合附图和具体实施例对本申请作进一步详细说明。

实施例1

如图1所示,本实施例公开一种数据库操作优化方法,步骤包括:

步骤S1、代理模块接收用户发送过来的SQL查询语句;代理模块根据其自身的索引信息表格,识别SQL查询语句中是否有对索引信息表格的索引字段进行查询;若有则代理模块直接将SQL查询语句发送给数据库;若无,则代理模块判断SQL查询语句是否符合数据库的索引规则;若SQL查询语句符合数据库的索引规则,则代理模块将SQL查询语句发送至数据库;若SQL查询语句不符合数据库的索引规则,则代理模块将SQL查询语句中不符合规则的查询字符进行调整使其符合数据库的索引规则,并形成新的SQL查询语句,将SQL查询语句发送至数据库;

其中,对所述的“代理模块将SQL查询语句中不符合规则的查询字符进行调整使其符合数据库的索引规则”进行举例子:比如有组合索引(col1,col2),如果查询语句是“wherecol2=比较值2 and col1=比较值1”则不会使用组合索引(col1,col2),必须改成“wherecol1=比较值1 and col2=比较值2”才会使用组合索引(col1,col2),即错误的“where col2=比较值2 and col1=比较值1”调整成“where col1=比较值1 and col2=比较值2”;

其中,组合索引(concatenated index):由多个列构成的索引,如create index idx_emp on emp(col1,col2,col3, ……),则我们称idx_emp索引为组合索引;在组合索引中有一个重要的概念:引导列(leading column),在上面的例子中,col1列为引导列。当我们进行查询时可以使用“where col2=比较值2 and col1 = 比较值1”,也可以使用“where col1=比较值1 and col2 =比较值2”,这样的限制条件都会使用索引,但是”where col2 = 比较值2 and col1=比较值1”查询就不会使用该索引;所以限制条件中包含先导列时,该限制条件才会使用该组合索引;

步骤S2、数据库收到SQL查询语句后,根据SQL查询语句,返回数据库的执行结果给代理模块;

步骤S3、代理模块将执行结果发送给用户。

本发明通过在数据库与用户之间搭建一个代理模块,代理模块负责转发来自于用户的请求和返回数据库执行结果,除此之外还能识别一些存在有优化空间的SQL语句,比如未能正确使用索引等,对语句进行修正优化,不仅不影响查询结果还能提升查询效率;另外,通过独立的代理模块对数据库查询语句进行筛选,大大降低了数据库的运行损耗,并减少了数据库的运算负担。

实施例2

如图2所示,本实施例在实施例1的基础上公开一种数据库操作优化系统,包括相互连接的代理模块和数据库模块;

所述代理模块用于:接收用户发送过来的SQL查询语句;代理模块根据其自身的索引信息表格,识别SQL查询语句中是否有对索引信息表格的索引字段进行查询;若有则代理模块直接将SQL查询语句发送给数据库模块;若无,则代理模块判断SQL查询语句是否符合数据库模块的索引规则;若SQL查询语句符合数据库模块的索引规则,则代理模块将SQL查询语句发送至数据库模块;若SQL查询语句不符合数据库模块的索引规则,则代理模块将SQL查询语句中不符合规则的查询字符进行调整使其符合数据库模块的索引规则,并形成新的SQL查询语句,将SQL查询语句发送至数据库模块;

所述数据库模块用于接收SQL查询语句后,根据SQL查询语句,返回数据库模块的执行结果给代理模块;

所述代理模块还用于将执行结果发送给用户。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解的是,在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种等效的变化、修改、替换和变型,本发明的范围由所附权利要求及其等同范围限定。

相关技术
  • 一种数据库操作优化方法及其系统
  • 一种层次化数据库操作加速系统和方法
技术分类

06120112227494