CN113282607A - 一种数据库的优化查询方法 - Google Patents

一种数据库的优化查询方法 Download PDF

Info

Publication number
CN113282607A
CN113282607A CN202110613507.4A CN202110613507A CN113282607A CN 113282607 A CN113282607 A CN 113282607A CN 202110613507 A CN202110613507 A CN 202110613507A CN 113282607 A CN113282607 A CN 113282607A
Authority
CN
China
Prior art keywords
data
column
index
data table
optimized
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
CN202110613507.4A
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.)
Shandong Health Medical Big Data Co ltd
Original Assignee
Shandong Health Medical Big Data 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 Shandong Health Medical Big Data Co ltd filed Critical Shandong Health Medical Big Data Co ltd
Priority to CN202110613507.4A priority Critical patent/CN113282607A/zh
Publication of CN113282607A publication Critical patent/CN113282607A/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/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • 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

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

本发明公开一种数据库的优化查询方法,涉及数据查询技术领域,其实现内容包括优化数据处理和优化查询语句两部分;在优化数据处理部分,执行的操作包括:(1.1)删除数据库中的重复记录;(1.2)在数据表中设置主键;在优化查询语句部分,执行的操作包括:(2.1)按照数据量降序排列数据表,并使用inner join连接相邻两个数据表;(2.2)连接多个数据表之前,对数据表进行别名操作;(2.3)避免在Select子句中使用*查询全部;(2.4)设定数据表中可以进行替换的子句;(2.5)在数据表中建立索引。本发明可以改善数据表的查询顺序,减少对无关联数据的扫描次数,降低数据查询过程中占用的资源,实现数据的快速查询。

Description

一种数据库的优化查询方法
技术领域
本发明涉及数据查询技术领域,具体的说是一种数据库的优化查询方法。
背景技术
索引是帮助高效获取数据的一种数据结构,其可以对数据库表中的一列或多列的值进行排序,使用索引可以实现快速访问数据库表中的特定信息,在对于大数据量的数据表进行查询时优先对需要检索的列位置进行记录,避免对数据表中的全部数据进行扫描,提高数据库查询数据的速度。
在大型项目中,业务***需要处理的数据量巨大,SQL承担着巨大的运行压力,且SQL的性能优劣对整个业务***性能有着巨大的影响。基于此,设计研发一种数据库的优化查询方法,以通过优化数据处理和优化查询语句,实现数据的快速查询。
发明内容
本发明针对目前技术发展的需求和不足之处,提供一种数据库的优化查询方法。
本发明的一种数据库的优化查询方法,解决上述技术问题采用的技术方案如下:
一种数据库的优化查询方法,其实现内容包括优化数据处理和优化查询语句两部分;
在优化数据处理部分,执行的操作包括:(1.1)删除数据库中的重复记录;(1.2)在数据表中设置主键;
在优化查询语句部分,执行的操作包括:(2.1)按照数据量降序排列数据表,并使用inner join连接相邻两个数据表;(2.2)连接多个数据表之前,对数据表进行别名操作;(2.3)避免在Select子句中使用*查询全部;(2.4)设定数据表中可以进行替换的子句;(2.5)在数据表中建立索引。
进一步的,在优化数据处理部分,执行的操作还包括:(1.3)针对只含数字类型的字段,使用数字类型,包含字符的字段使用varchar/nvarchar来代替char/nchar。
进一步的,在优化数据处理部分,执行(1.1),删除数据库中的重复记录时,使用truncate代替delete,使用truncate时,回滚段不再存放任何可以被回复的信息,删除的数据不能被恢复。
进一步的,在优化查询语句部分,执行(2.2),对数据表进行别名操作后,使用数据表的别名,并将数据表别名前缀于每个需要查询的列上。
进一步的,在优化查询语句部分,执行(2.4),设定数据表中可以进行替换的子句,包括:
使用where子句替换having子句:having子句在检索出所有记录之后再对结果集进行过滤,在having子句中还有对结果的排序操作和总计操作;
使用EXISTS代替IN,使用NOT EXISTS代替NOT IN;
使用UNION ALL替换UNION操作符:UNION操作符会在数据表连接后筛选掉重复的记录,UNION ALL操作只是简单地将结果合并后就返回。
进一步的,在优化查询语句部分,执行(2.5),在数据表中建立索引的原则包括:
(a)设置列最大阈值,在数据表中某列数据的日查询次数超过列最大阈值时,建立该列数据的索引;
(b)设置列最小阈值,在数据表中某列数据的修改次数低于列最小阈值时,建立该列数据的索引;
(c)在数据表中,某列数据的类型不同于上一列数据和下一列数据的类型时,建立该列数据的索引;
(d)设置字段阈值,在字段的文本长度小于字段阈值时,建立该字段的索引;
(e)针对与其他数据表相连的中间数据表,在中间数据表的连接其他数据表的字段上建立索引。
更进一步的,在优化查询语句部分,执行(2.5),在数据表中建立索引的原则还包括:
(f)禁止在建立的索引中使用%xx,同时,使用select t from t where reverse(f)like reverse(‘%abc’)代替%xx;
(g)在where子句中,禁止使用!=和<>操作符;
(h)禁止在索引列上使用is null、is not null判断是否为空。
优选的,一个数据表中的索引数量不超过6个;
针对建立索引的原则(a)、(b)、(d),当数据表的多列数据满足同一个原则时,在与设定阈值相差最大的列上建立索引;
针对建立索引的原则(c),当数据表的多列数据满足同一个原则时,如果某列数据的类型不同于上M列数据和下N列数据的类型,选取M+N最大时对应的列,在该列上建立索引。
本发明的一种数据库的优化查询方法,与现有技术相比具有的有益效果是:
本发明通过优化数据处理和优化查询语句,可以改善数据表的查询顺序,减少对无关联数据的扫描次数,降低数据查询过程中占用的资源,实现数据的快速查询。
具体实施方式
为使本发明的技术方案、解决的技术问题和技术效果更加清楚明白,以下结合具体实施例,对本发明的技术方案进行清楚、完整的描述。
实施例一:
本实施例提出一种数据库的优化查询方法,其实现内容包括优化数据处理和优化查询语句两部分。
(一)在优化数据处理部分,执行的操作包括:
(1.1)删除数据库中的重复记录。使用truncate代替delete,使用truncate时,回滚段不再存放任何可以被回复的信息,删除的数据不能被恢复。
(1.2)在数据表中设置主键。
(1.3)针对只含数字类型的字段,使用数字类型,包含字符的字段使用varchar/nvarchar来代替char/nchar。
(二)在优化查询语句部分,执行的操作包括:
(2.1)按照数据量降序排列数据表,并使用inner join连接相邻两个数据表。
(2.2)连接多个数据表之前,对数据表进行别名操作。对数据表进行别名操作后,使用数据表的别名,并将数据表别名前缀于每个需要查询的列上。
(2.3)避免在Select子句中使用*查询全部。
(2.4)设定数据表中可以进行替换的子句,具体可以包括:
使用where子句替换having子句:having子句在检索出所有记录之后再对结果集进行过滤,在having子句中还有对结果的排序操作和总计操作;
使用EXISTS代替IN,使用NOT EXISTS代替NOT IN;
使用UNION ALL替换UNION操作符:UNION操作符会在数据表连接后筛选掉重复的记录,UNION ALL操作只是简单地将结果合并后就返回。
(2.5)在数据表中建立索引,建立索引的原则包括:
(a)设置列最大阈值,在数据表中某列数据的日查询次数超过列最大阈值时,建立该列数据的索引;
(b)设置列最小阈值,在数据表中某列数据的修改次数低于列最小阈值时,建立该列数据的索引;
(c)在数据表中,某列数据的类型不同于上一列数据和下一列数据的类型时,建立该列数据的索引;
(d)设置字段阈值,在字段的文本长度小于字段阈值时,建立该字段的索引;
(e)针对与其他数据表相连的中间数据表,在中间数据表的连接其他数据表的字段上建立索引;
(f)禁止在建立的索引中使用%xx,同时,使用select t from t where reverse(f)like reverse(‘%abc’)代替%xx;
(g)在where子句中,禁止使用!=和<>操作符;
(h)禁止在索引列上使用is null、is not null判断是否为空。
需要补充的是,为了避免一个数据表中出现很多个索引,设定一个数据表中的索引数量不超过6个。此时,
针对建立索引的原则(a)、(b)、(d),当数据表的多列数据满足同一个原则时,在与设定阈值相差最大的列上建立索引;
针对建立索引的原则(c),当数据表的多列数据满足同一个原则时,如果某列数据的类型不同于上M列数据和下N列数据的类型,选取M+N最大时对应的列,在该列上建立索引。
综上可知,采用本发明的一种数据库的优化查询方法,通过优化数据处理和优化查询语句,可以改善数据表的查询顺序,减少对无关联数据的扫描次数,降低数据查询过程中占用的资源,实现数据的快速查询。
以上应用具体个例对本发明的原理及实施方式进行了详细阐述,这些实施例只是用于帮助理解本发明的核心技术内容。基于本发明的上述具体实施例,本数据查询技术领域的技术人员在不脱离本发明原理的前提下,对本发明所作出的任何改进和修饰,皆应落入本发明的专利保护范围。

Claims (8)

1.一种数据库的优化查询方法,其特征在于,其实现内容包括优化数据处理和优化查询语句两部分;
在优化数据处理部分,执行的操作包括:(1.1)删除数据库中的重复记录;(1.2)在数据表中设置主键;
在优化查询语句部分,执行的操作包括:(2.1)按照数据量降序排列数据表,并使用inner join连接相邻两个数据表;(2.2)连接多个数据表之前,对数据表进行别名操作;(2.3)避免在Select子句中使用*查询全部;(2.4)设定数据表中可以进行替换的子句;(2.5)在数据表中建立索引。
2.根据权利要求1所述的一种数据库的优化查询方法,其特征在于,在优化数据处理部分,执行的操作还包括:(1.3)针对只含数字类型的字段,使用数字类型,包含字符的字段使用varchar/nvarchar来代替char/nchar。
3.根据权利要求1所述的一种数据库的优化查询方法,其特征在于,在优化数据处理部分,执行(1.1),删除数据库中的重复记录时,使用truncate代替delete,使用truncate时,回滚段不再存放任何可以被回复的信息,删除的数据不能被恢复。
4.根据权利要求1所述的一种数据库的优化查询方法,其特征在于,在优化查询语句部分,执行(2.2),对数据表进行别名操作后,使用数据表的别名,并将数据表别名前缀于每个需要查询的列上。
5.根据权利要求1所述的一种数据库的优化查询方法,其特征在于,在优化查询语句部分,执行(2.4),设定数据表中可以进行替换的子句,包括:
使用where子句替换having子句:having子句在检索出所有记录之后再对结果集进行过滤,在having子句中还有对结果的排序操作和总计操作;
使用EXISTS代替IN,使用NOT EXISTS代替NOT IN;
使用UNION ALL替换UNION操作符:UNION操作符会在数据表连接后筛选掉重复的记录,UNION ALL操作只是简单地将结果合并后就返回。
6.根据权利要求1所述的一种数据库的优化查询方法,其特征在于,在优化查询语句部分,执行(2.5),在数据表中建立索引的原则包括:
(a)设置列最大阈值,在数据表中某列数据的日查询次数超过列最大阈值时,建立该列数据的索引;
(b)设置列最小阈值,在数据表中某列数据的修改次数低于列最小阈值时,建立该列数据的索引;
(c)在数据表中,某列数据的类型不同于上一列数据和下一列数据的类型时,建立该列数据的索引;
(d)设置字段阈值,在字段的文本长度小于字段阈值时,建立该字段的索引;
(e)针对与其他数据表相连的中间数据表,在中间数据表的连接其他数据表的字段上建立索引。
7.根据权利要求6所述的一种数据库的优化查询方法,其特征在于,在优化查询语句部分,执行(2.5),在数据表中建立索引的原则还包括:
(f)禁止在建立的索引中使用%xx,同时,使用select t from t where reverse(f)like reverse(‘%abc’)代替%xx;
(g)在where子句中,禁止使用!=和<>操作符;
(h)禁止在索引列上使用is null、is not null判断是否为空。
8.根据权利要求7所述的一种数据库的优化查询方法,其特征在于,一个数据表中的索引数量不超过6个;
针对建立索引的原则(a)、(b)、(d),当数据表的多列数据满足同一个原则时,在与设定阈值相差最大的列上建立索引;
针对建立索引的原则(c),当数据表的多列数据满足同一个原则时,如果某列数据的类型不同于上M列数据和下N列数据的类型,选取M+N最大时对应的列,在该列上建立索引。
CN202110613507.4A 2021-06-02 2021-06-02 一种数据库的优化查询方法 Pending CN113282607A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110613507.4A CN113282607A (zh) 2021-06-02 2021-06-02 一种数据库的优化查询方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110613507.4A CN113282607A (zh) 2021-06-02 2021-06-02 一种数据库的优化查询方法

Publications (1)

Publication Number Publication Date
CN113282607A true CN113282607A (zh) 2021-08-20

Family

ID=77283137

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110613507.4A Pending CN113282607A (zh) 2021-06-02 2021-06-02 一种数据库的优化查询方法

Country Status (1)

Country Link
CN (1) CN113282607A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113688142A (zh) * 2021-10-25 2021-11-23 北京金山云网络技术有限公司 索引管理方法、装置、存储介质和电子设备
CN114490724A (zh) * 2022-04-15 2022-05-13 北京奥星贝斯科技有限公司 处理数据库查询语句的方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101963993A (zh) * 2010-10-21 2011-02-02 江苏科技大学 一种数据库单表记录快速查找的方法
CN106919678A (zh) * 2017-02-27 2017-07-04 武汉珞佳伟业科技有限公司 一种数据库查询优化***及方法
CN107315790A (zh) * 2017-06-14 2017-11-03 腾讯科技(深圳)有限公司 一种非相关子查询的优化方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101963993A (zh) * 2010-10-21 2011-02-02 江苏科技大学 一种数据库单表记录快速查找的方法
CN106919678A (zh) * 2017-02-27 2017-07-04 武汉珞佳伟业科技有限公司 一种数据库查询优化***及方法
CN107315790A (zh) * 2017-06-14 2017-11-03 腾讯科技(深圳)有限公司 一种非相关子查询的优化方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
创客诚品等, 北京希望电子出版社 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113688142A (zh) * 2021-10-25 2021-11-23 北京金山云网络技术有限公司 索引管理方法、装置、存储介质和电子设备
CN114490724A (zh) * 2022-04-15 2022-05-13 北京奥星贝斯科技有限公司 处理数据库查询语句的方法和装置
CN114490724B (zh) * 2022-04-15 2022-06-14 北京奥星贝斯科技有限公司 处理数据库查询语句的方法和装置

Similar Documents

Publication Publication Date Title
Codd Normalized data base structure: A brief tutorial
CN103761318B (zh) 一种关系型异构数据库数据同步的方法及***
AU2005203240B2 (en) Phrase identification in an information retrieval system
US5974408A (en) Method and apparatus for executing a query that specifies a sort plus operation
US5257365A (en) Database system with multi-dimensional summary search tree nodes for reducing the necessity to access records
US6266660B1 (en) Secondary index search
CN113282607A (zh) 一种数据库的优化查询方法
US6778985B1 (en) Implementing descending indexes with a descend function
CN103177120B (zh) 一种基于索引的XPath查询模式树匹配方法
CN102495906A (zh) 一种实现断点续传的增量式数据迁移方法
CN109325032B (zh) 一种索引数据存储及检索方法、装置及存储介质
KR101549220B1 (ko) 데이터베이스 관리 방법, 시스템 및 데이터베이스 트리 구조
CN110928882B (zh) 一种基于改进红黑树的内存数据库索引方法及***
CN112231321A (zh) 一种Oracle二级索引及索引实时同步方法
US8438173B2 (en) Indexing and querying data stores using concatenated terms
CN105373605A (zh) 数据文件批量存储方法及***
CN103902592A (zh) 基于MapReduce实现分析函数的方法及***
CN112905642A (zh) 基于csv映射文件将iec61850报告数据存入关系数据库的方法
US7165072B2 (en) Method for merging information from effective dated base tables
Stockinger et al. Using bitmap index for joint queries on structured and text data
KR102013839B1 (ko) 데이터베이스 관리 방법, 시스템 및 데이터베이스 트리 구조
KR102351846B1 (ko) 분산형 데이터베이스상의 인덱스 병합을 활용한 질의 최적화 방법
CN110674142A (zh) 一种Oracle数据库索引优化方法
Saisanguansat et al. Improving optimization performance on PL/SQL
JPS59121436A (ja) デ−タ群のソ−ト方法

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

RJ01 Rejection of invention patent application after publication