CN106919678A - 一种数据库查询优化系统及方法 - Google Patents

一种数据库查询优化系统及方法 Download PDF

Info

Publication number
CN106919678A
CN106919678A CN201710107320.0A CN201710107320A CN106919678A CN 106919678 A CN106919678 A CN 106919678A CN 201710107320 A CN201710107320 A CN 201710107320A CN 106919678 A CN106919678 A CN 106919678A
Authority
CN
China
Prior art keywords
operator
optimized
grammers
sql sentences
index
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
Application number
CN201710107320.0A
Other languages
English (en)
Inventor
彭凯
李俊峰
马威
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Luojia Weiye Technology Co Ltd
Original Assignee
Wuhan Luojia Weiye Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Luojia Weiye Technology Co Ltd filed Critical Wuhan Luojia Weiye Technology Co Ltd
Priority to CN201710107320.0A priority Critical patent/CN106919678A/zh
Publication of CN106919678A publication Critical patent/CN106919678A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24537Query rewriting; Transformation of operators

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种数据库查询优化系统及方法,包括select语法优化模块、join语法优化模块、where子句优化模块和聚合函数优化模块;本发明的有益效果是:提供一个数据库查询优化系统,对查询时间长,查询效率低的sql语句进行重写,以及对此sql语句所涉及的需要筛选或排序的列建立索引,实现sql语句的动态自调优,保证优化效果,且优化后不影响查询结果,有效减少查询时间,提高查询效率。

Description

一种数据库查询优化系统及方法
技术领域
本发明涉及数据库查询技术领域,特别涉及一种数据库查询优化系统及方法。
背景技术
随着信息化和互联网技术的发展,企业信息系统越来越多地参与到企业的管理当中。高效的管理大批量数据对于大多数的计算机应用领域都是至关重要的。数据库管理系统是使得单个或多个用户可以方便有效地管理并操纵大量数据的系统软件,它作为数据处理和管理的标准工具,已经逐步成为现代信息系统的基础和核心。为了使信息系统能够在各领域中稳定、高效的运行,其中最重要方面之一就是保证数据库的访问性能。可在信息和数据量激增的当下,网络间数据传输繁忙,信息系统的数据库数据访问量也变的越来越大,数据库系统性能开始下降,严重时甚至影响到相关的应用系统。这些对信息系统的数据库访问性能造成了很大的压力,数据库的效率的要求也变得越来越高,普通的数据库技术己不能快速、高效的完成与服务器数据库的数据交互。
查询是数据库系统中最基本和常用的一种操作,查询是否具有较高的执行速度,已成为数据库用户和设计者极其关心的问题。为了提高数据库系统的性能,对查询进行优化是必不可少的,现今大型商业数据库管理系统的成功很大程度上要归功于查询优化技术的发展和应用。但现有的查询优化主要是采用人工调优,数据库管理系统向数据库管理员提供一些可调的资源参数,数据库管理员根据经验和当前负载特征,调整这些资源参数,以达到查询优化的目的;其需要消耗人力,且优化效果取决于数据库管理员的经验,不能获得有效保证。
发明内容
本发明所要解决的技术问题是提供一种动态自动调优的数据库查询优化系统及方法。
本发明解决上述技术问题的技术方案如下:
一种数据库查询优化系统,包括select语法优化模块、join语法优化模块、where子句优化模块和聚合函数优化模块;
所述select语法优化模块,其用于查询待优化sql语句是否包含select*语法;是,则根据所述待优化sql语句的查询需求,将所述select*语法中的*替换为查询目标字段,再驱动join语法优化模块工作;否,则直接驱动join语法优化模块工作;
所述join语法优化模块,其用于查询所述待优化sql语句是否包含join语法;是,则对所述join语法所连接的表的列建立索引,再驱动where子句优化模块工作;否,则直接驱动where子句优化模块工作;
所述where子句优化模块,其用于查询所述待优化sql语句是否包含where子句;是,则对所述where子句进行优化,再驱动聚合函数优化模块工作;否,则直接驱动聚合函数优化模块工作;
所述聚合函数优化模块,其用于查询所述待优化sql语句是否包含聚合函数;是,则在所述聚合函数所操作的列创建索引,再结束操作;否,则直接结束操作。
本发明的有益效果是:提供一个数据库查询优化系统,对查询时间长,查询效率低的sql语句进行重写,以及对此sql语句所涉及的需要筛选或排序的列建立索引,实现sql语句的动态自调优,保证优化效果,且优化后不影响查询结果,有效减少查询时间,提高查询效率。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述系统还包括查询模块;
所述查询模块,其用于查询数据库慢查询日志,根据各sql语句的查询时间和效率,获取所述待优化sql语句。
采用上述进一步方案的有益效果是:自动查询需要优化的sql语句,进一步实现sql语句的动态自调优。
进一步,所述join语法优化模块包括主键索引创建单元和外键索引创建单元;
所述主键索引创建单元,其用于查询所述join语法所连接的表的主键是否有索引;是,则直接驱动外键索引创建单元工作;否,则在所述主键上创建索引,再驱动外键索引创建单元工作;
所述外键索引创建单元,其用于查询所述join语法所连接的表的外键是否有索引;是,则直接驱动where子句优化模块工作;否,则在所述外键上创建索引,再驱动where子句优化模块工作。
采用上述进一步方案的有益效果是:在join语法所连接的表的主键和外键上分别创建索引,进一步提高查询效率。
进一步,所述where子句优化模块对所述where子句进行优化包括:如果所述where子句包含NOT操作符,则对所述NOT操作符进行重写,如果所述待优化sql语句的查询结果的数据量超过预设值,则在所述where子句所筛选的列创建索引,如果所述待优化sql语句包含order by子句,则在所述order by子句所指向的有序列上创建索引;
其中,对所述NOT操作符进行重写为获取所述NOT操作后面紧跟的操作符;
当所述紧跟的操作符为!=,则将所述紧跟的操作符替换为=,并删除所述NOT操作符;
当所述紧跟的操作符为=,则将所述紧跟的操作符替换为!=,并删除所述NOT操作符;
当所述紧跟的操作符为<=,则将所述紧跟的操作符替换为>,并删除所述NOT操作符;
当所述紧跟的操作符为<,则将所述紧跟的操作符替换为>=,并删除所述NOT操作符;
当所述紧跟的操作符为>=,则将所述紧跟的操作符替换为<,并删除所述NOT操作符;
当所述紧跟的操作符为>,则将所述紧跟的操作符替换为<=,并删除所述NOT操作符。
采用上述进一步方案的有益效果是:减少where子句中NOT操作符的个数,以及where子句所涉及的需要筛选或排序的列建立索引,进一步提高查询效率。
进一步,所述系统还包括创建存储过程模块;
所述创建存储过程模块,其用于判断经所述聚合函数优化模块处理后的所述待优化sql语句是否复杂;是,则将所述待优化sql语句的查询结果与所述待优化sql语句对应存储,再结束操作;否,则直接结束操作。
采用上述进一步方案的有益效果是:将复杂的sql语句与此sql语句的查询结果对应存储,后期涉及此sql语句时,可直接调用此sql语句的查询结果,进一步提高查询效率。
本发明的另一技术方案如下:
一种数据库查询优化方法,包括如下步骤:
步骤1,查询待优化sql语句是否包含select*语法;是,则根据所述待优化sql语句的查询需求,将所述select*语法中的*替换为查询目标字段,再执行步骤2;否,则直接执行步骤2;
步骤2,查询所述待优化sql语句是否包含join语法;是,则对所述join语法所连接的表的列建立索引,再执行步骤3;否,则直接执行步骤3;
步骤3,查询所述待优化sql语句是否包含where子句;是,则对所述where子句进行优化,再执行步骤4;否,则直接执行步骤4;
步骤4,查询所述待优化sql语句是否包含聚合函数;是,则在所述聚合函数所操作的列创建索引,再结束操作;否,则直接结束操作。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述步骤1前还包括:查询数据库慢查询日志,根据各sql语句的查询时间和效率,获取所述待优化sql语句。
进一步,对所述join语法所连接的表的列建立索引包括如下步骤:
步骤a,查询所述join语法所连接的表的主键是否有索引;是,则直接执行步骤b;否,则在所述主键上创建索引,再执行步骤b;
步骤b,查询所述join语法所连接的表的外键是否有索引;是,则直接执行步骤3;否,则在所述外键上创建索引,再执行步骤3。
进一步,所述步骤3中对所述where子句进行优化包括:如果所述where子句包含NOT操作符,则对所述NOT操作符进行重写,如果所述待优化sql语句的查询结果的数据量超过预设值,则在所述where子句所筛选的列创建索引,如果所述待优化sql语句包含orderby子句,则在所述order by子句所指向的有序列上创建索引;
其中,对所述NOT操作符进行重写为获取所述NOT操作后面紧跟的操作符;
当所述紧跟的操作符为!=,则将所述紧跟的操作符替换为=,并删除所述NOT操作符;
当所述紧跟的操作符为=,则将所述紧跟的操作符替换为!=,并删除所述NOT操作符;
当所述紧跟的操作符为<=,则将所述紧跟的操作符替换为>,并删除所述NOT操作符;
当所述紧跟的操作符为<,则将所述紧跟的操作符替换为>=,并删除所述NOT操作符;
当所述紧跟的操作符为>=,则将所述紧跟的操作符替换为<,并删除所述NOT操作符;
当所述紧跟的操作符为>,则将所述紧跟的操作符替换为<=,并删除所述NOT操作符。
进一步,所述方法还包括步骤5,判断经所述步骤4处理后的所述待优化sql语句是否复杂;是,则将所述待优化sql语句的查询结果与所述待优化sql语句对应存储,再结束操作;否,则直接结束操作。
附图说明
图1为本发明一种数据库查询优化系统的系统原理框图;
图2为本发明一种数据库查询优化方法的方法流程图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,本发明实施例1所述一种数据库查询优化系统,包括select语法优化模块、join语法优化模块、where子句优化模块和聚合函数优化模块;
所述select语法优化模块,其用于查询待优化sql语句是否包含select*语法;是,则根据所述待优化sql语句的查询需求,将所述select*语法中的*替换为查询目标字段,再驱动join语法优化模块工作;否,则直接驱动join语法优化模块工作;
所述join语法优化模块,其用于查询所述待优化sql语句是否包含join语法;是,则对所述join语法所连接的表的列建立索引,再驱动where子句优化模块工作;否,则直接驱动where子句优化模块工作;
所述where子句优化模块,其用于查询所述待优化sql语句是否包含where子句;是,则对所述where子句进行优化,再驱动聚合函数优化模块工作;否,则直接驱动聚合函数优化模块工作;
所述聚合函数优化模块,其用于查询所述待优化sql语句是否包含聚合函数;是,则在所述聚合函数所操作的列创建索引,再结束操作;否,则直接结束操作。
本发明实施例2所述一种数据库查询优化系统,在实施例1的基础上,所述系统还包括查询模块;
所述查询模块,其用于查询数据库慢查询日志,根据各sql语句的查询时间和效率,获取所述待优化sql语句。
本发明实施例3所述一种数据库查询优化系统,在实施例1或2的基础上,所述join语法优化模块包括主键索引创建单元和外键索引创建单元;
所述主键索引创建单元,其用于查询所述join语法所连接的表的主键是否有索引;是,则直接驱动外键索引创建单元工作;否,则在所述主键上创建索引,再驱动外键索引创建单元工作;
所述外键索引创建单元,其用于查询所述join语法所连接的表的外键是否有索引;是,则直接驱动where子句优化模块工作;否,则在所述外键上创建索引,再驱动where子句优化模块工作。
本发明实施例4所述一种数据库查询优化系统,在实施例1至3任一实施例的基础上,所述where子句优化模块对所述where子句进行优化包括:如果所述where子句包含NOT操作符,则对所述NOT操作符进行重写,如果所述待优化sql语句的查询结果的数据量超过预设值,则在所述where子句所筛选的列创建索引,如果所述待优化sql语句包含order by子句,则在所述order by子句所指向的有序列上创建索引;其中,具体实施中,所述预设值可设置为100行,通过查看数据库慢查询日志,如果所述待优化sql语句的查询结果的行数超过100行,则在所述where子句所筛选的列创建索引。
本发明实施例5所述一种数据库查询优化系统,在实施例4的基础上,对所述NOT操作符进行重写为获取所述NOT操作后面紧跟的操作符;
当所述紧跟的操作符为!=,则将所述紧跟的操作符替换为=,并删除所述NOT操作符;
当所述紧跟的操作符为=,则将所述紧跟的操作符替换为!=,并删除所述NOT操作符;
当所述紧跟的操作符为<=,则将所述紧跟的操作符替换为>,并删除所述NOT操作符;
当所述紧跟的操作符为<,则将所述紧跟的操作符替换为>=,并删除所述NOT操作符;
当所述紧跟的操作符为>=,则将所述紧跟的操作符替换为<,并删除所述NOT操作符;
当所述紧跟的操作符为>,则将所述紧跟的操作符替换为<=,并删除所述NOT操作符。
本发明实施例6所述一种数据库查询优化系统,在实施例1至5任一实施例的基础上,所述系统还包括创建存储过程模块;
所述创建存储过程模块,其用于判断经所述聚合函数优化模块处理后的所述待优化sql语句是否复杂;是,则将所述待优化sql语句的查询结果与所述待优化sql语句对应存储,再结束操作;否,则直接结束操作;其中,具体实施中,所述待优化sql语句是否复杂,可基于所述待优化sql语句的字符个数是否超过某一值来界定,也可基于所述待优化sql语句是否包含select*语法、join语法、where子句和聚合函数中的一个或多个来界定。
如图2所示,本发明实施例7所述一种数据库查询优化方法,包括如下步骤:
步骤1,查询待优化sql语句是否包含select*语法;是,则根据所述待优化sql语句的查询需求,将所述select*语法中的*替换为查询目标字段,再执行步骤2;否,则直接执行步骤2;
步骤2,查询所述待优化sql语句是否包含join语法;是,则对所述join语法所连接的表的列建立索引,再执行步骤3;否,则直接执行步骤3;
步骤3,查询所述待优化sql语句是否包含where子句;是,则对所述where子句进行优化,再执行步骤4;否,则直接执行步骤4;
步骤4,查询所述待优化sql语句是否包含聚合函数;是,则在所述聚合函数所操作的列创建索引,再结束操作;否,则直接结束操作。
本发明实施例8所述一种数据库查询优化方法,在实施例7的基础上,所述步骤1前还包括:查询数据库慢查询日志,根据各sql语句的查询时间和效率,获取所述待优化sql语句。
本发明实施例9所述一种数据库查询优化方法,在实施例7或8的基础上,对所述join语法所连接的表的列建立索引包括如下步骤:
步骤a,查询所述join语法所连接的表的主键是否有索引;是,则直接执行步骤b;否,则在所述主键上创建索引,再执行步骤b;
步骤b,查询所述join语法所连接的表的外键是否有索引;是,则直接执行步骤3;否,则在所述外键上创建索引,再执行步骤3。
本发明实施例10所述一种数据库查询优化方法,在实施例7至9任一实施例的基础上,所述步骤3中对所述where子句进行优化包括:如果所述where子句包含NOT操作符,则对所述NOT操作符进行重写,如果所述待优化sql语句的查询结果的数据量超过预设值,则在所述where子句所筛选的列创建索引,如果所述待优化sql语句包含order by子句,则在所述order by子句所指向的有序列上创建索引。
本发明实施例11所述一种数据库查询优化方法,在实施例10的基础上,对所述NOT操作符进行重写为获取所述NOT操作后面紧跟的操作符;
当所述紧跟的操作符为!=,则将所述紧跟的操作符替换为=,并删除所述NOT操作符;
当所述紧跟的操作符为=,则将所述紧跟的操作符替换为!=,并删除所述NOT操作符;
当所述紧跟的操作符为<=,则将所述紧跟的操作符替换为>,并删除所述NOT操作符;
当所述紧跟的操作符为<,则将所述紧跟的操作符替换为>=,并删除所述NOT操作符;
当所述紧跟的操作符为>=,则将所述紧跟的操作符替换为<,并删除所述NOT操作符;
当所述紧跟的操作符为>,则将所述紧跟的操作符替换为<=,并删除所述NOT操作符。
本发明实施例12所述所述一种数据库查询优化方法,在实施例7至11任一实施例的基础上,所述方法还包括步骤5,判断经所述步骤4处理后的所述待优化sql语句是否复杂;是,则将所述待优化sql语句的查询结果与所述待优化sql语句对应存储,再结束操作;否,则直接结束操作。
本发明可在cpu:intel i5,内存:4G DDR3 1666MHz,操作系统:Windows7旗舰版,数据库:mysql 5.7的操作环境下运行;经本发明优化后,数据库查询时间较原查询时间平均减少了78%。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种数据库查询优化系统,其特征在于,包括select语法优化模块、join语法优化模块、where子句优化模块和聚合函数优化模块;
所述select语法优化模块,其用于查询待优化sql语句是否包含select*语法;是,则根据所述待优化sql语句的查询需求,将所述select*语法中的*替换为查询目标字段,再驱动join语法优化模块工作;否,则直接驱动join语法优化模块工作;
所述join语法优化模块,其用于查询所述待优化sql语句是否包含join语法;是,则对所述join语法所连接的表的列建立索引,再驱动where子句优化模块工作;否,则直接驱动where子句优化模块工作;
所述where子句优化模块,其用于查询所述待优化sql语句是否包含where子句;是,则对所述where子句进行优化,再驱动聚合函数优化模块工作;否,则直接驱动聚合函数优化模块工作;
所述聚合函数优化模块,其用于查询所述待优化sql语句是否包含聚合函数;是,则在所述聚合函数所操作的列创建索引,再结束操作;否,则直接结束操作。
2.根据权利要求1所述一种数据库查询优化系统,其特征在于,所述系统还包括查询模块;
所述查询模块,其用于查询数据库慢查询日志,根据各sql语句的查询时间和效率,获取所述待优化sql语句。
3.根据权利要求1所述一种数据库查询优化系统,其特征在于,所述join语法优化模块包括主键索引创建单元和外键索引创建单元;
所述主键索引创建单元,其用于查询所述join语法所连接的表的主键是否有索引;是,则直接驱动外键索引创建单元工作;否,则在所述主键上创建索引,再驱动外键索引创建单元工作;
所述外键索引创建单元,其用于查询所述join语法所连接的表的外键是否有索引;是,则直接驱动where子句优化模块工作;否,则在所述外键上创建索引,再驱动where子句优化模块工作。
4.根据权利要求1所述一种数据库查询优化系统,其特征在于,所述where子句优化模块对所述where子句进行优化包括:如果所述where子句包含NOT操作符,则对所述NOT操作符进行重写,如果所述待优化sql语句的查询结果的数据量超过预设值,则在所述where子句所筛选的列创建索引,如果所述待优化sql语句包含order by子句,则在所述order by子句所指向的有序列上创建索引;
其中,对所述NOT操作符进行重写为获取所述NOT操作后面紧跟的操作符;
当所述紧跟的操作符为!=,则将所述紧跟的操作符替换为=,并删除所述NOT操作符;
当所述紧跟的操作符为=,则将所述紧跟的操作符替换为!=,并删除所述NOT操作符;
当所述紧跟的操作符为<=,则将所述紧跟的操作符替换为>,并删除所述NOT操作符;
当所述紧跟的操作符为<,则将所述紧跟的操作符替换为>=,并删除所述NOT操作符;
当所述紧跟的操作符为>=,则将所述紧跟的操作符替换为<,并删除所述NOT操作符;
当所述紧跟的操作符为>,则将所述紧跟的操作符替换为<=,并删除所述NOT操作符。
5.根据权利要求1至4中任一项所述一种数据库查询优化系统,其特征在于,所述系统还包括创建存储过程模块;
所述创建存储过程模块,其用于判断经所述聚合函数优化模块处理后的所述待优化sql语句是否复杂;是,则将所述待优化sql语句的查询结果与所述待优化sql语句对应存储,再结束操作;否,则直接结束操作。
6.一种数据库查询优化方法,其特征在于,包括如下步骤:
步骤1,查询待优化sql语句是否包含select*语法;是,则根据所述待优化sql语句的查询需求,将所述select*语法中的*替换为查询目标字段,再执行步骤2;否,则直接执行步骤2;
步骤2,查询所述待优化sql语句是否包含join语法;是,则对所述join语法所连接的表的列建立索引,再执行步骤3;否,则直接执行步骤3;
步骤3,查询所述待优化sql语句是否包含where子句;是,则对所述where子句进行优化,再执行步骤4;否,则直接执行步骤4;
步骤4,查询所述待优化sql语句是否包含聚合函数;是,则在所述聚合函数所操作的列创建索引,再结束操作;否,则直接结束操作。
7.根据权利要求6所述一种数据库查询优化方法,其特征在于,所述步骤1前还包括:查询数据库慢查询日志,根据各sql语句的查询时间和效率,获取所述待优化sql语句。
8.根据权利要求6所述一种数据库查询优化方法,其特征在于,对所述join语法所连接的表的列建立索引包括如下步骤:
步骤a,查询所述join语法所连接的表的主键是否有索引;是,则直接执行步骤b;否,则在所述主键上创建索引,再执行步骤b;
步骤b,查询所述join语法所连接的表的外键是否有索引;是,则直接执行步骤3;否,则在所述外键上创建索引,再执行步骤3。
9.根据权利要求6所述一种数据库查询优化方法,其特征在于,所述步骤3中对所述where子句进行优化包括:如果所述where子句包含NOT操作符,则对所述NOT操作符进行重写,如果所述待优化sql语句的查询结果的数据量超过预设值,则在所述where子句所筛选的列创建索引,如果所述待优化sql语句包含order by子句,则在所述order by子句所指向的有序列上创建索引;
其中,对所述NOT操作符进行重写为获取所述NOT操作后面紧跟的操作符;
当所述紧跟的操作符为!=,则将所述紧跟的操作符替换为=,并删除所述NOT操作符;
当所述紧跟的操作符为=,则将所述紧跟的操作符替换为!=,并删除所述NOT操作符;
当所述紧跟的操作符为<=,则将所述紧跟的操作符替换为>,并删除所述NOT操作符;
当所述紧跟的操作符为<,则将所述紧跟的操作符替换为>=,并删除所述NOT操作符;
当所述紧跟的操作符为>=,则将所述紧跟的操作符替换为<,并删除所述NOT操作符;
当所述紧跟的操作符为>,则将所述紧跟的操作符替换为<=,并删除所述NOT操作符。
10.根据权利要求6至9中任一项所述一种数据库查询优化方法,其特征在于,所述方法还包括步骤5,判断经所述步骤4处理后的所述待优化sql语句是否复杂;是,则将所述待优化sql语句的查询结果与所述待优化sql语句对应存储,再结束操作;否,则直接结束操作。
CN201710107320.0A 2017-02-27 2017-02-27 一种数据库查询优化系统及方法 Pending CN106919678A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710107320.0A CN106919678A (zh) 2017-02-27 2017-02-27 一种数据库查询优化系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710107320.0A CN106919678A (zh) 2017-02-27 2017-02-27 一种数据库查询优化系统及方法

Publications (1)

Publication Number Publication Date
CN106919678A true CN106919678A (zh) 2017-07-04

Family

ID=59454239

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710107320.0A Pending CN106919678A (zh) 2017-02-27 2017-02-27 一种数据库查询优化系统及方法

Country Status (1)

Country Link
CN (1) CN106919678A (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107480199A (zh) * 2017-07-17 2017-12-15 深圳先进技术研究院 数据库的查询重构方法、装置、设备及存储介质
CN108153916A (zh) * 2018-01-30 2018-06-12 福建星瑞格软件有限公司 利用随机算法实现数据库sql查询语句自动生成工具的方法
CN108399196A (zh) * 2018-01-30 2018-08-14 福建星瑞格软件有限公司 数据库sql语句自动生成工具的sql自动执行方法及系统
CN108509530A (zh) * 2018-03-14 2018-09-07 武汉斗鱼网络科技有限公司 一种MySQL慢查询语句自动优化方法、计算机设备和存储介质
CN110019288A (zh) * 2017-08-25 2019-07-16 中国移动通信集团甘肃有限公司 一种数据操作方法及装置
CN110399377A (zh) * 2019-08-30 2019-11-01 北京东软望海科技有限公司 Sql的优化方法、装置、电子设备及计算机可读存储介质
CN111241059A (zh) * 2020-01-07 2020-06-05 广州虎牙科技有限公司 一种基于数据库的数据库优化方法及装置
CN111881145A (zh) * 2020-07-31 2020-11-03 北京致远互联软件股份有限公司 业务数据表的处理方法、装置、服务器及存储介质
CN112347120A (zh) * 2020-10-27 2021-02-09 蜂助手股份有限公司 一种基于复杂sql的自动优化方法和装置
CN112783914A (zh) * 2019-11-01 2021-05-11 北京京东振世信息技术有限公司 优化语句的方法和装置
CN113282607A (zh) * 2021-06-02 2021-08-20 山东健康医疗大数据有限公司 一种数据库的优化查询方法
CN115185921A (zh) * 2022-05-17 2022-10-14 贝壳找房(北京)科技有限公司 数据库故障止损方法、装置、电子设备、介质及程序产品

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1592905A (zh) * 2000-05-26 2005-03-09 计算机联合思想公司 自动产生数据库查询的系统和方法
CN103365914A (zh) * 2012-04-10 2013-10-23 北京易盟天地信息技术有限公司 基于搜索引擎的数据库查询系统和方法
CN103942294A (zh) * 2014-04-11 2014-07-23 江苏物联网研究发展中心 智能交通领域中海量数据检索的查询规划方法
CN104408134A (zh) * 2013-11-28 2015-03-11 中国科学院计算技术研究所 一种sql到云环境的映射方法及系统
CN104866608A (zh) * 2015-06-05 2015-08-26 中国人民大学 一种数据仓库中基于连接索引的查询优化方法
CN104899291A (zh) * 2015-06-05 2015-09-09 北京京东尚科信息技术有限公司 关系型数据库的多维分析的方法及装置
CN105320679A (zh) * 2014-07-11 2016-02-10 中国移动通信集团重庆有限公司 一种数据表索引集合生成方法及装置
CN105335479A (zh) * 2015-10-12 2016-02-17 国家计算机网络与信息安全管理中心 一种基于sql的文本数据统计实现方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1592905A (zh) * 2000-05-26 2005-03-09 计算机联合思想公司 自动产生数据库查询的系统和方法
CN103365914A (zh) * 2012-04-10 2013-10-23 北京易盟天地信息技术有限公司 基于搜索引擎的数据库查询系统和方法
CN104408134A (zh) * 2013-11-28 2015-03-11 中国科学院计算技术研究所 一种sql到云环境的映射方法及系统
CN103942294A (zh) * 2014-04-11 2014-07-23 江苏物联网研究发展中心 智能交通领域中海量数据检索的查询规划方法
CN105320679A (zh) * 2014-07-11 2016-02-10 中国移动通信集团重庆有限公司 一种数据表索引集合生成方法及装置
CN104866608A (zh) * 2015-06-05 2015-08-26 中国人民大学 一种数据仓库中基于连接索引的查询优化方法
CN104899291A (zh) * 2015-06-05 2015-09-09 北京京东尚科信息技术有限公司 关系型数据库的多维分析的方法及装置
CN105335479A (zh) * 2015-10-12 2016-02-17 国家计算机网络与信息安全管理中心 一种基于sql的文本数据统计实现方法

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107480199A (zh) * 2017-07-17 2017-12-15 深圳先进技术研究院 数据库的查询重构方法、装置、设备及存储介质
CN107480199B (zh) * 2017-07-17 2020-06-12 深圳先进技术研究院 数据库的查询重构方法、装置、设备及存储介质
CN110019288A (zh) * 2017-08-25 2019-07-16 中国移动通信集团甘肃有限公司 一种数据操作方法及装置
CN108153916B (zh) * 2018-01-30 2021-08-31 福建星瑞格软件有限公司 利用随机算法实现数据库sql查询语句自动生成工具的方法
CN108399196A (zh) * 2018-01-30 2018-08-14 福建星瑞格软件有限公司 数据库sql语句自动生成工具的sql自动执行方法及系统
CN108153916A (zh) * 2018-01-30 2018-06-12 福建星瑞格软件有限公司 利用随机算法实现数据库sql查询语句自动生成工具的方法
CN108509530A (zh) * 2018-03-14 2018-09-07 武汉斗鱼网络科技有限公司 一种MySQL慢查询语句自动优化方法、计算机设备和存储介质
CN110399377A (zh) * 2019-08-30 2019-11-01 北京东软望海科技有限公司 Sql的优化方法、装置、电子设备及计算机可读存储介质
CN112783914A (zh) * 2019-11-01 2021-05-11 北京京东振世信息技术有限公司 优化语句的方法和装置
CN112783914B (zh) * 2019-11-01 2023-09-01 北京京东振世信息技术有限公司 优化语句的方法和装置
CN111241059A (zh) * 2020-01-07 2020-06-05 广州虎牙科技有限公司 一种基于数据库的数据库优化方法及装置
CN111881145A (zh) * 2020-07-31 2020-11-03 北京致远互联软件股份有限公司 业务数据表的处理方法、装置、服务器及存储介质
CN112347120A (zh) * 2020-10-27 2021-02-09 蜂助手股份有限公司 一种基于复杂sql的自动优化方法和装置
CN112347120B (zh) * 2020-10-27 2022-04-01 蜂助手股份有限公司 一种基于复杂sql的自动优化方法和装置
CN113282607A (zh) * 2021-06-02 2021-08-20 山东健康医疗大数据有限公司 一种数据库的优化查询方法
CN115185921A (zh) * 2022-05-17 2022-10-14 贝壳找房(北京)科技有限公司 数据库故障止损方法、装置、电子设备、介质及程序产品

Similar Documents

Publication Publication Date Title
CN106919678A (zh) 一种数据库查询优化系统及方法
CN109299102B (zh) 一种基于Elastcisearch的HBase二级索引系统及方法
US20170083573A1 (en) Multi-query optimization
EP3285178B1 (en) Data query method in crossing-partition database, and crossing-partition query device
CN103177058B (zh) 存储为行存储和列存储二者的混合数据库表
JP6553649B2 (ja) クラスタリング記憶方法および装置
CN103064875B (zh) 一种服务化空间数据分布式查询方法
CN103177055B (zh) 存储为行存储和列存储二者的混合数据库表
US8965918B2 (en) Decomposed query conditions
CN110362572A (zh) 一种基于列式存储的时序数据库系统
EP2608070A1 (en) Hybrid database table stored as both row and column store
CN107315790A (zh) 一种非相关子查询的优化方法和装置
EP3385864B1 (en) Method and device for establishing index
US20180285475A1 (en) Flexible record definitions for semi-structured data in a relational database system
US20070156655A1 (en) Method of retrieving data from a data repository, and software and apparatus relating thereto
CN109597829B (zh) 一种实现可搜索加密关系型数据库缓存的中间件方法
US11429629B1 (en) Data driven indexing in a spreadsheet based data store
US20100191717A1 (en) Optimization of query processing with top operations
US20070239656A1 (en) Removal of Database Query Function Calls
US20120179669A1 (en) Systems and methods for searching a search space of a query
US11514236B1 (en) Indexing in a spreadsheet based data store using hybrid datatypes
KR101955376B1 (ko) 비공유 아키텍처 기반의 분산 스트림 처리 엔진에서 관계형 질의를 처리하는 방법, 이를 수행하기 위한 기록 매체 및 장치
US11500839B1 (en) Multi-table indexing in a spreadsheet based data store
US20170031982A1 (en) Maintaining Performance in the Presence of Insertions, Deletions, and Streaming Queries
CN104376054B (zh) 一种持久化实例对象的处理方法及装置

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: 20170704

RJ01 Rejection of invention patent application after publication