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

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

【技术实现步骤摘要】

本专利技术涉及数据库中单表记录数据访问
,更确切的说是涉及一种对数据 库单表记录快速查找的方法。
技术介绍
随着科学技术的快速发展,数据库已经普遍应用于各种领域,而数据库又是各大 信息网站的核心,对数据库中表的数据获取时间要求也越来越高。由于当前社交网以及论坛之类的以数据为中心的网站,每天都有成千上万条或更 多的数据需要存储在信息数据库中,如论坛类的发帖内容和回帖内容,社交网类的用户基 本信息、用户分享信息以及留言等数据,而目前的数据存储是按类别存储的,即每一类别的 数据是存储在一张表中,因此这样的情况下数据表中的数据量也是相对比较大。如果用户需要查询相关数据记录的话,则查询速度将是需要首先考虑的问题,目 前的方法是在信息数据库中找到相应的表,再对表中的全部数据进行查询,最后把数据最 终显示出来,显然,在此数据量相对比较大的表中进行直接查找数据是相对耗时的,本专利技术 是用于计算机数据库中表查询模块,开发人员可以利用本专利技术技术来提高数据库中单表记 录查找的速度问题,将需要的信息先通过查找部分的显示出来,然后将后续的查找结果陆 续的显示给用户。现有数据库表记录查找的方法是在数据表上建立索引,使用硬件来分担磁盘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 EMPLOYEEGROUP 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)查询数据交换区,将本文档来自技高网...

【技术保护点】
一种数据库单表记录快速查找的方法,用于计算机数据库中表查询模块,其特征在于,包括如下步骤:步骤一:根据查询语句进行以下方法优化,重新生成新查询语句,同时在计算机内存中申请上一次查询结果数据区,用于保存上一次查询最终结果数据;步骤二:根据新查询语句提取出数据库单表名,将所述提取出的数据库单表中的数据按照一定规则进行读取,并在计算机内存中分配所述读取数据大小的数据交换区,将读取出的数据存入该数据交换区,用于在整个查询过程中的数据交换;步骤三:更新数据交换区中的数据;步骤四:将新查询语句查询对象修改为数据区中的数据,将查询结果链接在已申请的上一次查询结果数据区,同时将数据库单表中含有查询结果记录中查询次数字段的值加一;步骤五:重复执行步骤二和步骤四,直到取完数据库单表中的所有数据;步骤六:返回查询结果。

【技术特征摘要】
一种数据库单表记录快速查找的方法,用于计算机数据库中表查询模块,其特征在于,包括如下步骤步骤一根据查询语句进行以下方法优化,重新生成新查询语句,同时在计算机内存中申请上一次查询结果数据区,用于保存上一次查询最终结果数据;步骤二根据新查询语句提取出数据库单表名,将所述提取出的数据库单表中的数据按照一定规则进行读取,并在计算机内存中分配所述读取数据大小的数据交换区,将读取出的数据存入该数据交换区,用于在整个查询过程中的数据交换;步骤三更新数据交换区中的数据;步骤四将新查询语句查询对象修改为数据区中的数据,将查询结果链接在已申请的上一次查询结果数据区,同时将数据库单表中含有查询结果记录中查询次数字段的值加一;步骤五重复执行步骤二和步骤四,直到取完数据库单表中的所有数据;步骤六返回查询结果。2.根据权利要求1所述的一种数据库单表记录快速查找的方法,其特征在于步骤一 中所述的以下方法优化包括识别关键字信息和优化规则。3.根据权利要求2所述的一种数据库单表记录快速查找的方法,其特征在于 所述识别关键字信息,包括HAVING,>,DELETE, IN, NOT IN, EXISTS, DISTINCT, UNION信息;所述优化规则,是根据以下优化原理来优化查询语句,包括用Where子句替换HAVING 子句;使用DECODE函数;用 >=替代 > ;使用表的别名;用TRUNCATE替代DELETE ;用ROWID进 行表访问;用EXISTS替代IN ;用NOT EXISTS替代NOT IN ;用表连接替换EXISTS ;用EXISTS 替换 DISTIN...

【专利技术属性】
技术研发人员:刘镇孙敏张笑非钱萍
申请(专利权)人:江苏科技大学
类型:发明
国别省市:32[中国|江苏]

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

1