CN112231338A - 一种数据库操作优化方法及其系统 - Google Patents
一种数据库操作优化方法及其系统 Download PDFInfo
- Publication number
- CN112231338A CN112231338A CN202011461913.5A CN202011461913A CN112231338A CN 112231338 A CN112231338 A CN 112231338A CN 202011461913 A CN202011461913 A CN 202011461913A CN 112231338 A CN112231338 A CN 112231338A
- Authority
- CN
- China
- Prior art keywords
- database
- query statement
- sql query
- agent module
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种数据库操作优化方法及其系统,方法步骤包括:接收SQL查询语句;代理模块根据索引信息表格,识别SQL查询语句中是否有对索引字段进行查询;若有则直接将SQL查询语句发送给数据库;若无,则判断SQL查询语句是否符合数据库的索引规则;若SQL查询语句符合数据库的索引规则,则将SQL查询语句发送至数据库;若SQL查询语句不符合数据库的索引规则,则将SQL查询语句中不符合规则的查询字符进行调整,并形成新的SQL查询语句并发送至数据库;数据库收到SQL查询语句后,返回数据库的执行结果给代理模块。本发明通过代理模块对查询语句进行修正优化,提升了数据库查询效率。
Description
技术领域
本发明涉及数据库技术领域,特别涉及一种数据库操作优化方法及其系统。
背景技术
数据库是一种广泛应用的数据管理软件,提供数据的增删改查服务。
目前数据库操作指令如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查询语句,返回数据库模块的执行结果给代理模块;
所述代理模块还用于将执行结果发送给用户。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解的是,在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种等效的变化、修改、替换和变型,本发明的范围由所附权利要求及其等同范围限定。
Claims (2)
1.一种数据库操作优化方法,其特征在于,包括以下步骤:
步骤S1、代理模块接收用户发送过来的SQL查询语句;代理模块根据其自身的索引信息表格,识别SQL查询语句中是否有对索引信息表格的索引字段进行查询;若有则代理模块直接将SQL查询语句发送给数据库;若无,则代理模块判断SQL查询语句是否符合数据库的索引规则;若SQL查询语句符合数据库的索引规则,则代理模块将SQL查询语句发送至数据库;若SQL查询语句不符合数据库的索引规则,则代理模块将SQL查询语句中不符合规则的查询字符进行调整使其符合数据库的索引规则,并形成新的SQL查询语句,将SQL查询语句发送至数据库;
步骤S2、数据库收到SQL查询语句后,根据SQL查询语句,返回数据库的执行结果给代理模块;
步骤S3、代理模块将执行结果发送给用户。
2.一种数据库操作优化系统,其特征在于,包括相互连接的代理模块和数据库模块;
所述代理模块用于:接收用户发送过来的SQL查询语句;代理模块根据其自身的索引信息表格,识别SQL查询语句中是否有对索引信息表格的索引字段进行查询;若有则代理模块直接将SQL查询语句发送给数据库模块;若无,则代理模块判断SQL查询语句是否符合数据库模块的索引规则;若SQL查询语句符合数据库模块的索引规则,则代理模块将SQL查询语句发送至数据库模块;若SQL查询语句不符合数据库模块的索引规则,则代理模块将SQL查询语句中不符合规则的查询字符进行调整使其符合数据库模块的索引规则,并形成新的SQL查询语句,将SQL查询语句发送至数据库模块;
所述数据库模块用于接收SQL查询语句后,根据SQL查询语句,返回数据库模块的执行结果给代理模块;
所述代理模块还用于将执行结果发送给用户。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011461913.5A CN112231338A (zh) | 2020-12-14 | 2020-12-14 | 一种数据库操作优化方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011461913.5A CN112231338A (zh) | 2020-12-14 | 2020-12-14 | 一种数据库操作优化方法及其系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112231338A true CN112231338A (zh) | 2021-01-15 |
Family
ID=74124547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011461913.5A Pending CN112231338A (zh) | 2020-12-14 | 2020-12-14 | 一种数据库操作优化方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112231338A (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105550225A (zh) * | 2015-12-07 | 2016-05-04 | 百度在线网络技术(北京)有限公司 | 索引构建方法、查询方法及装置 |
CN109947770A (zh) * | 2018-08-14 | 2019-06-28 | 武汉斗鱼网络科技有限公司 | 一种数据库查询方法、终端设备及存储介质 |
-
2020
- 2020-12-14 CN CN202011461913.5A patent/CN112231338A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105550225A (zh) * | 2015-12-07 | 2016-05-04 | 百度在线网络技术(北京)有限公司 | 索引构建方法、查询方法及装置 |
CN109947770A (zh) * | 2018-08-14 | 2019-06-28 | 武汉斗鱼网络科技有限公司 | 一种数据库查询方法、终端设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
李培: "数字资源统一检索系统的分析", 《数字图书馆原理及应用》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2005239366B2 (en) | Partial query caching | |
US6748374B1 (en) | Method for generating a relational database query statement using one or more templates corresponding to search conditions in an expression tree | |
CN101499069B (zh) | 内存数据库文件的更新方法及更新装置 | |
US7890482B2 (en) | System for controlling concurrent access to data in a database system | |
US7752213B2 (en) | Flexible access of data stored in a database | |
US8972433B2 (en) | Systems and methods for programmatic generation of database statements | |
US8065269B2 (en) | Immediate maintenance of materialized views | |
CN111797073B (zh) | 数据库管理方法、电子设备与计算机可读存储介质 | |
US20010051948A1 (en) | Method and system for representing and accessing object-oriented data in a relational database system | |
CN103678556A (zh) | 列式数据库处理的方法和处理设备 | |
US7933928B2 (en) | Method and mechanism for loading XML documents into memory | |
US20200201834A1 (en) | Systems and methods of efficient extensions of relational tables in a database | |
CN111414378B (zh) | 一种基于GraphQL的类元数据框架 | |
CN112596719A (zh) | 一种生成前后端代码的方法和系统 | |
CN112860802B (zh) | 数据库操作语句的处理方法、装置及电子设备 | |
CN116561154A (zh) | Sql语句优化方法及装置 | |
US7689549B2 (en) | Flashback support for domain index queries | |
CN112231338A (zh) | 一种数据库操作优化方法及其系统 | |
CN117149776A (zh) | 一种基于postgresql的非唯一索引结构的更新方法及装置 | |
CN112540995A (zh) | 数据更新方法、电子设备及存储介质 | |
CN116610697A (zh) | 数据库查询语句的查询方法、存储介质及设备 | |
CN105653277A (zh) | 一种简化java程序下查询数据表指定字段数据、多表联合查询、统计查询的方法 | |
CN116450660A (zh) | 一种数据同步中主键冲突的处理方法及装置 | |
CN112783915A (zh) | 基于SpringMVC+Mybatis框架的数据传输对象映射方法和单元 | |
CN116108092A (zh) | 基于SpringBatch框架下主数据数据处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210115 |
|
RJ01 | Rejection of invention patent application after publication |