CN101963993B - 一种数据库单表记录快速查找的方法 - Google Patents

一种数据库单表记录快速查找的方法 Download PDF

Info

Publication number
CN101963993B
CN101963993B CN201010514250A CN201010514250A CN101963993B CN 101963993 B CN101963993 B CN 101963993B CN 201010514250 A CN201010514250 A CN 201010514250A CN 201010514250 A CN201010514250 A CN 201010514250A CN 101963993 B CN101963993 B CN 101963993B
Authority
CN
China
Prior art keywords
data
query
database
query result
last
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.)
Expired - Fee Related
Application number
CN201010514250A
Other languages
English (en)
Other versions
CN101963993A (zh
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.)
Jiangsu University of Science and Technology
Nantong Power Supply Co of Jiangsu Electric Power Co Ltd
Original Assignee
Jiangsu University of Science and Technology
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 Jiangsu University of Science and Technology filed Critical Jiangsu University of Science and Technology
Priority to CN201010514250A priority Critical patent/CN101963993B/zh
Publication of CN101963993A publication Critical patent/CN101963993A/zh
Application granted granted Critical
Publication of CN101963993B publication Critical patent/CN101963993B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公布了一种数据库单表记录快速查找的方法,用于计算机数据库中表记录查询模块,包括:对查询语句进行优化,重新生成新查询语句,同时在计算机内存中申请特别数据区,用于保存上一次查询的结果数据;根据新查询语句提取出数据库单表名,将所述提取出的数据库单表中的数据按照一定规则进行读取,将读取出的数据存入该数据交换区,用在整个查询过程中的数据交换;动态更新数据交换区中的数据;将新查询语句查询对象修改为数据区中的数据,将查询结果链接在已申请的数据区,同时将数据库单表中含有查询结果记录中查询次数字段的值加一;本发明一方面能够明显提高查询数据的查找时间,同时没有增加额外的硬件和硬盘存储空间,节省了硬件成本。

Description

一种数据库单表记录快速查找的方法
技术领域
本发明涉及数据库中单表记录数据访问技术领域,更确切的说是涉及一种对数据库单表记录快速查找的方法。
背景技术
随着科学技术的快速发展,数据库已经普遍应用于各种领域,而数据库又是各大信息网站的核心,对数据库中表的数据获取时间要求也越来越高。
由于当前社交网以及论坛之类的以数据为中心的网站,每天都有成千上万条或更多的数据需要存储在信息数据库中,如论坛类的发帖内容和回帖内容,社交网类的用户基本信息、用户分享信息以及留言等数据,而目前的数据存储是按类别存储的,即每一类别的数据是存储在一张表中,因此这样的情况下数据表中的数据量也是相对比较大。
如果用户需要查询相关数据记录的话,则查询速度将是需要首先考虑的问题,目前的方法是在信息数据库中找到相应的表,再对表中的全部数据进行查询,最后把数据最终显示出来,显然,在此数据量相对比较大的表中进行直接查找数据是相对耗时的,本发明是用于计算机数据库中表查询模块,开发人员可以利用本发明技术来提高数据库中单表记录查找的速度问题,将需要的信息先通过查找部分的显示出来,然后将后续的查找结果陆续的显示给用户。
现有数据库表记录查找的方法是在数据表上建立索引,使用硬件来分担磁盘I/O等方法,这样实现的方法需要额外的硬件以及额外的空间来担当,则成本比较昂贵,而且查找时间并没有明显提高。
发明内容
为了解决数据表中记录查找时间的问题,本发明的主要目的是提供一种数据库单表记录快速查找的方法,使用户能够快速的从比较相对大的数据量的数据表中查找到需要的详细数据,以满足用户的需要。
本发明为实现上述目的,采用如下技术方案:
本发明一种数据库单表记录快速查找的方法,用于计算机数据库中表查询模块,包括如下步骤:
步骤一:根据查询语句进行以下方法优化,重新生成新查询语句,同时在计算机内存中申请上一次查询结果数据区,用于保存上一次查询最终结果数据;
步骤二:根据新查询语句提取出数据库单表名,将所述提取出的数据库单表中的数据按照一定规则进行读取,并在计算机内存中分配所述读取数据大小的数据交换区,将读取出的数据存入该数据交换区,用于在整个查询过程中的数据交换;
步骤三:更新数据交换区中的数据;
步骤四:将新查询语句查询对象修改为数据区的数据,将查询结果链接在已申请的上一次查询结果数据区,同时将数据库单表中含有查询结果记录中查询次数字段的值加一;
步骤五:重复执行步骤二和步骤四,直到取完数据库单表中的所有数据;
步骤六:返回查询结果。
其中,步骤一中所述的以下方法优化包括:识别关键字信息和优化规则。
其中,所述识别关键字信息,包括:HAVING,>,DELETE,IN,NOT IN,EXISTS,DISTINCT,UNION信息;
所述优化规则,是根据以下优化原理来优化查询语句,包括:用Where子句替换HAVING子句;使用DECODE函数;用>=替代>;使用表的别名;用TRUNCATE替代DELETE;用ROWID进行表访问;用EXISTS替代IN;用NOT EXISTS替代NOT IN;用表连接替换EXISTS;用EXISTS替换DISTINCT;用UNION-ALL 替换UNION规则。
其中,步骤二中所述按照一定规则读取数据库单表中的数据包括:
配置读取规则,包括:数据排序类型、排序字段、读取记录行数、当前记录集标志;
读数据存储过程,进一步需要的参数包括:数据库IP地址、数据库名、登入用户名、登入密码、数据表名、数据排序类型、读取记录行数、当前记录集标志。
其中,步骤三中所述更新数据交换区中的数据是定时更新的,首先在查询模块中创建一个更新线程,在更新线程中启动一个定时器,定时器在设定的时间间隔内按照步骤二中的一定规则向数据表进行数据的获取。
其中,步骤四中所述内存中的数据区包括数据交换区和上一次查询结果数据区,第一次进行查询时,首先查询的数据区是上一次查询结果数据区数据;查找完上一次查询结果数据区后进行查找数据交换区数据。
其中,所述上一次查询的结果数据区是指上一次最终查询结果的数据存放区,用于本次查询的首选查询数据;
所述数据交换区是指读取数据库单表中指定行的数据记录,用于该数据交换区的数据查询完后进行下一轮数据的更新,包括如下步骤:
步骤a,将数据库单表中数据按照配置读取规则中的排序字段进行排序,然后取指定行的数据记录;
步骤b,当查询语句查询完该数据交换区后,将查询结果链接到上一次查询结果数据区;
步骤c,接着取表中剩下记录中的指定行的数据记录。
采用本发明所述方法,与现有技术相比,经过优化后的查询语句,加上所要查询的数据是表中记录经常被访问的数据,以及所要查询的数据都是存放在内存数据区中,而访问内存的速度比访问数据表的速度快很多,因此本发明能够明显提高查询数据的查找时间,此技术全部使用了软件技术,没有增加额外的硬件和硬盘存储空间,节省了硬件成本。
附图说明
图1为本发明优化查询语句的流程图。
图2为本发明查询语句执行查询的流程图。
图3为本发明快速查找数据表中数据记录的流程图。
具体实施方式
下面结合附图,基本按照附图的顺序对技术方案的实施过程作进一步的详细描述:
在图1中,本发明说明了优化查询语句的流程图。其中优化的步骤包括:识别关键字信息、优化规则,各部分的说明如下:
步骤11,识别关键字信息,包括:HAVING,>,DELETE,IN,NOT IN,EXISTS,DISTINCT,UNION等信息。
步骤12,优化规则,是根据以下优化原理来优化查询语句,包括:用Where子句替换HAVING子句;使用DECODE函数;用>=替代>;使用表的别名;用TRUNCATE替代DELETE;用ROWID进行表访问;用EXISTS替代IN;用NOT EXISTS替代NOT IN;用表连接替换EXISTS;用EXISTS替换DISTINCT;用UNION-ALL 替换UNION等规则。 
在查询模块启动后,该模块中有单表查询请求时,获取查询语句,如下所示:
SELECT ID,NAME,SUM(AGE)  FROM  EMPLOYEE 
GROUP BY ID HAVING ID>8
则此时识别到关键字有HAVING,>等,对照优化规则中的第一条和第三条规则进行优化,即最终优化后的查询语句如下所示:
SELECT ID,NAME,SUM(AGE)  FROM EMPLOYEE
WHERE ID>=9 GROUP BY ID
在图2中,本发明说明了查询语句执行查询的流程图。
(1)在图1结束后将产生新的查询语句,判断该查询是否是第一次查询,如果是,则执行(2),如果不是,则执行(3)。
(2)获取读取规则中的数据排序类型、按照指定的排序类型和排序字段进行排序,获取读取记录行数和当前记录集标志,从该表中获取指定记录行数的数据,保证该数据是按照排序字段的最靠前指定记录行数的数据,并将该数据存储到内存数据交换区和上一次查询结果数据区。
(3)将查询语句查询对象修改为内存数据区。首先查询上一次查询结果数据区,查询完该语句后将清除上一次查询结果数据区,将之前的查询结果链接到上一次查询结果数据区上。
(4)查询数据交换区,将查询结果链接到上一次查询结果数据区上。
(5)判断表中是否还有可读数据,如果有,执行(6),如果没有,则执行(7)。
(6)获取表中下一记录集,将记录集存储在数据交换区,执行(4)。
(7)将表中查询次数字段的值加一。
(8)返回上一次查询结果数据区的数据。
在图3中,本发明说明了快速查找数据表中数据记录的流程图。
(1)获取查询语句,并进行优化该查询语句,生成新查询语句。
(2)进行新查询语句的执行,将执行后的查询结果链接在上一次查询结果数据区上,并定时更新内存中的数据区。
(3)将内存中的上一次查询结果数据区中的数据返回显示。

Claims (3)

1.一种数据库单表记录快速查找的方法,用于计算机数据库中表查询模块,其特征在于,包括如下步骤:
步骤一:根据查询语句进行优化,重新生成新查询语句,同时在计算机内存中申请上一次查询结果数据区,用于保存上一次查询最终结果数据;
所述优化的方法包括:识别关键字信息和优化规则;
所述识别关键字信息,包括:HAVING,>,DELETE,IN,NOT IN,EXISTS,DISTINCT,UNION信息;
所述优化规则,是根据以下优化原理来优化查询语句,包括:用Where子句替换HAVING子句;使用DECODE函数;用>=替代>;使用表的别名;用TRUNCATE替代DELETE;用ROWID进行表访问;用EXISTS替代IN;用NOTEXISTS替代NOT IN;用表连接替换EXISTS;用EXISTS替换DISTINCT;用UNION-ALL替换UNION规则;
步骤二:根据新查询语句提取出数据库单表名,将所述提取出的数据库单表中的数据按照一定规则进行读取,并在计算机内存中分配所述读取数据大小的数据交换区,将读取出的数据存入该数据交换区,用于在整个查询过程中的数据交换;
所述按照一定规则读取数据库单表中的数据包括:
配置读取规则,包括:数据排序类型、排序字段、读取记录行数和当前记录集标志;
读数据存储过程,进一步需要的参数包括:数据库IP地址、数据库名、登入用户名、登入密码、数据表名、数据排序类型、读取记录行数和当前记录集标志;
步骤三:更新数据交换区中的数据;
步骤四:将新查询语句的查询对象修改为数据区中的数据,将查询结果链接在已申请的上一次查询结果数据区,同时将数据库单表中含有查询结果记录中查询次数字段的值加一;
所述的数据区包括数据交换区和上一次查询结果数据区,第一次进行查询时,首先查询的数据区是上一次查询结果数据区;查询完上一次查询结果数据区后,再查询的数据区是数据交换区;
步骤五:重复执行步骤二至步骤四,直到取完数据库单表中的所有数据;
步骤六:返回查询结果。
2.根据权利要求1所述的一种数据库单表记录快速查找的方法,其特征在于:步骤三中所述更新数据交换区中的数据是定时更新的,首先在查询模块中创建一个更新线程,在更新线程中启动一个定时器,定时器在设定的时间间隔内按照步骤二中的一定规则向数据表进行数据的获取。
3.根据权利要求1所述的一种数据库单表记录快速查找的方法,其特征在于:所述上一次查询的结果数据区是指上一次最终查询结果的数据存放区,用于本次查询的首选查询数据;
所述数据交换区是指读取数据库单表中指定行的数据记录,用于该数据交换区的数据查询完后进行下一轮数据的更新,包括如下步骤:
步骤a,将数据库单表中数据按照配置读取规则中的排序字段进行排序,然后取指定行的数据记录;
步骤b,当查询语句查询完该数据交换区后,将查询结果链接到上一次查询结果数据区;
步骤c,接着取表中剩下记录中的指定行的数据记录。
CN201010514250A 2010-10-21 2010-10-21 一种数据库单表记录快速查找的方法 Expired - Fee Related CN101963993B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010514250A CN101963993B (zh) 2010-10-21 2010-10-21 一种数据库单表记录快速查找的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010514250A CN101963993B (zh) 2010-10-21 2010-10-21 一种数据库单表记录快速查找的方法

Publications (2)

Publication Number Publication Date
CN101963993A CN101963993A (zh) 2011-02-02
CN101963993B true CN101963993B (zh) 2012-08-29

Family

ID=43516866

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010514250A Expired - Fee Related CN101963993B (zh) 2010-10-21 2010-10-21 一种数据库单表记录快速查找的方法

Country Status (1)

Country Link
CN (1) CN101963993B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130297586A1 (en) * 2012-05-07 2013-11-07 International Business Machines Corporation Optimizing queries using predicate mappers
CN103345468B (zh) * 2013-05-13 2017-03-29 中国科学技术大学 一种基于太阳能建筑的建筑材料热物性数据库***
CN106156162A (zh) * 2015-04-15 2016-11-23 阿里巴巴集团控股有限公司 数据库查询量统计方法和设备
CN105550271B (zh) * 2015-12-10 2018-12-25 成都广达新网科技股份有限公司 一种基于键值对的内存数据库查询方法及装置
CN107133300A (zh) * 2017-04-27 2017-09-05 福建中金在线信息科技有限公司 一种数据查询方法及装置
CN113282607A (zh) * 2021-06-02 2021-08-20 山东健康医疗大数据有限公司 一种数据库的优化查询方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101021874A (zh) * 2007-03-21 2007-08-22 金蝶软件(中国)有限公司 一种对查询sql请求进行优化的方法及装置
CN101093493A (zh) * 2006-06-23 2007-12-26 国际商业机器公司 数据库查询语言转换方法、转换装置、数据库查询***

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7529728B2 (en) * 2003-09-23 2009-05-05 Salesforce.Com, Inc. Query optimization in a multi-tenant database system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101093493A (zh) * 2006-06-23 2007-12-26 国际商业机器公司 数据库查询语言转换方法、转换装置、数据库查询***
CN101021874A (zh) * 2007-03-21 2007-08-22 金蝶软件(中国)有限公司 一种对查询sql请求进行优化的方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张敏.SQL查询语句优化研究.《现代电子技术》.2010,(第4期),第152-153,156页. *
赵红雨.浅谈数据库查询优化方法.《科技资讯》.2010,(第9期),第18页. *

Also Published As

Publication number Publication date
CN101963993A (zh) 2011-02-02

Similar Documents

Publication Publication Date Title
CN108874971B (zh) 一种应用于海量标签化实体数据存储的工具和方法
CN100468402C (zh) 一种数据存储及查询方法
CN107818115B (zh) 一种处理数据表的方法及装置
CN101719141B (zh) 基于目录对象的文件处理方法和***
CN104536904B (zh) 一种数据管理的方法、设备与***
CN103631909B (zh) 对大规模结构化和非结构化数据联合处理的***及方法
CN102930060B (zh) 一种数据库快速索引的方法及装置
CN101963993B (zh) 一种数据库单表记录快速查找的方法
CN103902698A (zh) 一种数据存储***和存储方法
CN103577440A (zh) 一种非关系型数据库中的数据处理方法和装置
CN104794123A (zh) 一种为半结构化数据构建NoSQL数据库索引的方法及装置
CN106528847A (zh) 一种海量数据的多维度处理方法及***
CN101452487B (zh) 一种数据加载的方法、***及数据加载装置
CN101727502A (zh) 一种数据查询方法及装置、***
CN110109910A (zh) 数据处理方法及***、电子设备和计算机可读存储介质
JP2019527898A (ja) 大規模データセットの高速検索またはフィルタリングのためのシステム、方法、およびデータ構造
CN111459985A (zh) 标识信息处理方法及装置
CN101840400A (zh) 一种多级分类检索方法及***
CN103902701A (zh) 一种数据存储***和存储方法
CN106649602B (zh) 业务对象数据处理方法、装置和服务器
CN105630934A (zh) 一种数据统计方法及***
CN104346458A (zh) 数据存储方法和存储设备
CN102346744A (zh) 用于在多租户应用***中处理物化表的装置
CN103353901A (zh) 基于Hadoop分布式文件***的表数据的有序管理方法以及***
CN102193983A (zh) 图形数据库基于关系路径的节点数据过滤方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
CB03 Change of inventor or designer information

Inventor after: Liu Zhen

Inventor after: Sun Min

Inventor after: Zhang Xiaofei

Inventor after: Qian Ping

Inventor after: Luo Yong

Inventor after: Liu Wangchun

Inventor after: Huang Dongdong

Inventor after: Huang Chunyan

Inventor after: Zhou Jia

Inventor before: Liu Zhen

Inventor before: Sun Min

Inventor before: Zhang Xiaofei

Inventor before: Qian Ping

COR Change of bibliographic data
TR01 Transfer of patent right

Effective date of registration: 20160620

Address after: 212003 Zhenjiang City, Jiangsu province dream Creek Road, No. 2

Patentee after: Jiangsu University of Science and Technology

Patentee after: Nantong Power Supply Company, Jiangsu Electric Power Co., Ltd.

Address before: 212003 Zhenjiang City, Jiangsu province dream Creek Road, No. 2

Patentee before: Jiangsu University of Science and Technology

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120829

Termination date: 20161021

CF01 Termination of patent right due to non-payment of annual fee