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

技术编号:27059192 阅读:22 留言:0更新日期:2021-01-15 14:38
本发明专利技术公开一种数据库操作优化方法及其系统,方法步骤包括:接收SQL查询语句;代理模块根据索引信息表格,识别SQL查询语句中是否有对索引字段进行查询;若有则直接将SQL查询语句发送给数据库;若无,则判断SQL查询语句是否符合数据库的索引规则;若SQL查询语句符合数据库的索引规则,则将SQL查询语句发送至数据库;若SQL查询语句不符合数据库的索引规则,则将SQL查询语句中不符合规则的查询字符进行调整,并形成新的SQL查询语句并发送至数据库;数据库收到SQL查询语句后,返回数据库的执行结果给代理模块。本发明专利技术通过代理模块对查询语句进行修正优化,提升了数据库查询效率。

【技术实现步骤摘要】
一种数据库操作优化方法及其系统
本专利技术涉及数据库
,特别涉及一种数据库操作优化方法及其系统。
技术介绍
数据库是一种广泛应用的数据管理软件,提供数据的增删改查服务。目前数据库操作指令如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=比较值2andcol1=比较值1”则不会使用组合索引(col1,col2),必须改成“wherecol1=比较值1andcol2=比较值2”才会使用组合索引(col1,col2),即错误的“wherecol2=比较值2andcol1=比较值1”调整成“wherecol1=比较值1andcol2=比较值2”;其中,组合索引(concatenatedindex):由多个列构成的索引,如createindexidx_emponemp(col1,col2,col3,……),则我们称idx_emp索引为组合索引;在组合索引中有一个重要的概念:引导列(leadingcolumn),在上面的例子中,col1列为引导列。当我们进行查询时可以使用“wherecol2=比较值2andcol1=比较值1”,也可以使用“wherecol1=比较值1andcol2=比较值2”,这样的限制条件都会使用索引,但是”wherecol2=比较值2andcol1=比较值1”查询就不会使用该索引;所以限制条件中包含先导列时,该限制条件才会使用该组合索引;步骤S2、数据库收到SQL查询语句后,根据SQL查询语句,返回数据库的执行结果给代理模块;步骤S3、代理模块将执行结果发送给用户。本专利技术通过在数据库与用户之间搭建一个代理模块,代理模块负责转发来自于用户的请求和返回数据库执行结果,除此之外还能识别一些存在有优化空间的SQL语句,比如未能正确使用索引等,对语句进行修正优化,不仅不影响查询结果还能提升查询效率;另外,通过独立的代理模块对数据库查询语句进行筛选,大大降低了数据库的运行损耗,并减少了数据库的运算负担。实施例2如图2所示,本实施例在实施例1的基础上公开一种数据库操作优化系统,包括相互连接的代理模块和数据库模块;所述代理模块用于:接收用户发送过来的SQL查询语句;代理模块根据其自身的索引信息表格,识别SQL查询语句中是否有对索引信息表格的索引字段进行查询;若有则代理模块直接将SQL查询语句发送给数据库模块;若无,则代理模块判断SQL查询语句是否符合数据库模块的索引规则;若SQL查询语句符合数据库模块的索引规则,则代理模块将SQL查询语句发送至数据库模块;若SQL查询语句不符合数据库模块的索引规则,则代理模块将SQL查询语句中不符合规则的查询字符进行调整使其符合数据库模块的索引规则,并形成新的SQL查询语句,将SQL查询语句发送至数据库模块;所述数据库模块用于接收SQL查询语句后,根据SQL查询语句,返回数据库模块的执行结果给代理模块;所述代理模块还用于将执行结果发送给用户。尽管已经示出和描述了本专利技术的实施例,对于本领域的普通技术人员而本文档来自技高网...

【技术保护点】
1.一种数据库操作优化方法,其特征在于,包括以下步骤:/n步骤S1、代理模块接收用户发送过来的SQL查询语句;代理模块根据其自身的索引信息表格,识别SQL查询语句中是否有对索引信息表格的索引字段进行查询;若有则代理模块直接将SQL查询语句发送给数据库;若无,则代理模块判断SQL查询语句是否符合数据库的索引规则;若SQL查询语句符合数据库的索引规则,则代理模块将SQL查询语句发送至数据库;若SQL查询语句不符合数据库的索引规则,则代理模块将SQL查询语句中不符合规则的查询字符进行调整使其符合数据库的索引规则,并形成新的SQL查询语句,将SQL查询语句发送至数据库;/n步骤S2、数据库收到SQL查询语句后,根据SQL查询语句,返回数据库的执行结果给代理模块;/n步骤S3、代理模块将执行结果发送给用户。/n

【技术特征摘要】
1.一种数据库操作优化方法,其特征在于,包括以下步骤:
步骤S1、代理模块接收用户发送过来的SQL查询语句;代理模块根据其自身的索引信息表格,识别SQL查询语句中是否有对索引信息表格的索引字段进行查询;若有则代理模块直接将SQL查询语句发送给数据库;若无,则代理模块判断SQL查询语句是否符合数据库的索引规则;若SQL查询语句符合数据库的索引规则,则代理模块将SQL查询语句发送至数据库;若SQL查询语句不符合数据库的索引规则,则代理模块将SQL查询语句中不符合规则的查询字符进行调整使其符合数据库的索引规则,并形成新的SQL查询语句,将SQL查询语句发送至数据库;
步骤S2、数据库收到SQL查询语句后,根据SQL查询语句,返回数据库的执行结果给代理模块;
步骤S3、代理模块将执行结果发送给用户。


2.一种数据库操...

【专利技术属性】
技术研发人员:麦剑史伟闵宇
申请(专利权)人:广东睿江云计算股份有限公司
类型:发明
国别省市:广东;44

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

1