一种数据查询的方法

文档序号:8319315阅读:182来源:国知局
一种数据查询的方法
【技术领域】
[0001]本发明涉及计算机数据查询技术领域,具体地说是一种数据查询的方法。
【背景技术】
[0002]现今对于信息的分析和查询统计中为了能够支撑应用都需要进行大量的数据查询操作,通过对大量业务的分析,我们发现绝大部分查询所涉及到的数据,可能连续也可能分散,几乎没有太多的规律可言,而且通常规模巨大,能够缓冲到应用系统的内存中的相对总量非常少,绝大部分的查询仍然是直接通过数据库完成的。
[0003]在现有的数据查询方法中,一般为了应用系统处理上的简便,都将同一类型的数据按照固定格式存储在数据库的同一张表中。一般用来存储数据表至少需要两列,一列标识起始号码,一列标识结束号码,相应的也会在这两列上建立索引,通过按索引值范围来查找数据即进行索引范围扫描,从而实现对数据库的查询。但实际业务运作中相当一部分的数据会被重新分解,形成大量的单个数据和区间跨度较小的数据,其中大量的单个数据也就是所谓的各自分离、不连续的分散数据。分散数据的增加会导致表数据规模膨胀、数据规律性降低,从而导致了查询效率的降低,因此难以适应数据量巨大的特点。

【发明内容】

[0004]本发明的技术任务是提供一种数据查询的方法。
[0005]本发明的技术任务是按以下方式实现的,该数据查询方法步骤如下:
步骤1:把数据库中的数据分离为分散数据和连续数据,并分别存放在分散数据表和连续数据表中;
步骤2:确定分散数据表和连续数据表的查询顺序,记录统计分析项目及当前查询顺序,并设定统计开始时间和统计结束时间,将记录的查询总次数加一;
步骤3:根据查询顺序进行数据查询;
步骤4:判断是否到达统计结束时间;
步骤5:判断是否有信的查询请求;
步骤6:根据记录的一次查询成功次数、二次查询成功次数及查询总次数,确定所述查询顺序。
[0006]所述的步骤I具体操作如下:
步骤11:提取数据库中的一条记录;
步骤12:判断记录的索引起始数据和索引结束数据是否相等;如果相等则将该记录插入分散数据表中;如果不相等则将该记录插入连续数据表中;
步骤13:判断数据库中的记录是否提取完成。
[0007]所述步骤3具体操作如下:
步骤300:判断所述查询顺序是否为先查分散数据表;
步骤310:对分散数据表以标识索引起始数据的列进行唯一索引查询,并判断查询是否成功;
步骤311:将记录的一次查询成功的次数加一,然后结束;
步骤320:对连续数据表以标识索引起始数据和索引结束数据的两个列进行复合索引查询;
步骤321:将记录的二次查询成功的次数加一,然后结束;
步骤3101:对连续数据表以标识索引起始数据和索引结束数据的两个列进行复合索引查询;
步骤3111:将记录的一次查询成功的次数加一,然后结束;
步骤3201:对分散数据表以标识索引起始数据的列进行唯一索引查询;
步骤3211:将记录的二次查询成功的次数加一,然后结束。
[0008]所述的步骤6具体操作如下:
步骤61:根据以下公式计算一次成功的成功率和二次成功的成功率:
一次查询成功率=一次查询成功次数/查询总次数;
二次查询成功率=二次查询成功次数/查询总次数;
步骤62:比较一次成功的成功率是否大于二次成功的成功率;
步骤63:确定查询顺序为上次查询顺序,然后结束;
步骤64:交换上次查询顺序中分散数据表和连续数据表的顺序后作为查询顺序,然后结束。
[0009]本发明的一种数据查询的方法和现有技术相比,在查询数据的时候,分散数据表使用索引唯一扫描,无需使用低效的索引范围扫描:而连续数据表则继续使用索引范围扫描,有效的减小了数据规模,使得数据查询效率得到了有效控制,并且该查询方法通用性强,简单易用。
【附图说明】
[0010]附图1为一种数据查询的方法的流程框图。
[0011]附图2为一种数据查询的方法的具体流程框图。
【具体实施方式】
[0012]实施例1:
该数据查询方法步骤如下:
步骤1:把数据库中的数据分离为分散数据和连续数据,并分别存放在分散数据表和连续数据表中;
步骤11:提取所述数据库中的一条记录,如果提取成功则执行步骤12,如果提取不成功则结束;
步骤12:判断所述记录的索引起始数据和索引结束数据是否相等;如果相等则将该记录插入所述分散数据表中;如果不相等则将该记录插入所述连续数据表中;
步骤13:判断所述数据库中的记录是否提取完成,是则执行步骤2,否则执行步骤11。
[0013]步骤2:确定分散数据表和连续数据表的查询顺序,记录统计分析项目及当前查询顺序,并设定统计开始时间和统计结束时间,将记录的查询总次数加一; 步骤3:根据查询顺序进行数据查询;
步骤300:判断所述查询顺序是否为先查分散数据表,是则执行步骤310,否则执行步骤 3101 ;
步骤310:对所述分散数据表以标识索引起始数据的列进行唯一索引查询,并判断查询是否成功,如果查询成功则执行步骤311,如果查询不成功则执行步骤320 ;
步骤311:将记录的一次查询成功的次数加一,然后结束;
步骤320:对所述连续数据表以标识索引起始数据和索引结束数据的两个列进行复合索引查询,并判断查询是否成功,如果查询成功则执行步骤321:如果查询不成功则结束;步骤321:将记录的二次查询成功的次数加一,然后结束;
步骤3101:对所述连续数据表以标识索引起始数据和索引结束数据的两个列进行复合索引查询,并判断查询是否成功,如果查询成功则执行步骤3111:如果查询不成功则执行步骤3201 ;
步骤3111:将记录的一次查询成功的次数加一,然后结束;
步骤3201:对所述分散数据表以标识索引起始数据的列进行唯一索引查询,并判断查询是否成功,如果查询不成功则结束,如果查询成功则执行步骤3211 ;
步骤3211:将记录的二次查询成功的次数加一,然后结束。
[0014]步骤4:判断是否到达统计结束时间;
步骤5:判断是否有信的查询请求;
步骤6:根据记录的一次查询成功次数、二次查询成功次数及查询总次数,确定所述查询顺序。
[0015]步骤61:根据以下公式计算一次成功的成功率和二次成功的成功率:
一次查询成功率=一次查询成功次数/查询总次数;
二次查询成功率=二次查询成功次数/查询总次数;
步骤62:比较所述一次成功的成功率是否大于所述二次成功的成功率,是则执行步骤63,否则执行步骤64;
步骤63:确定所述查询顺序为上次查询顺序,然后结束;
步骤64:交换上次查询顺序中分散数据表和连续数据表的顺序后作为所述查询顺序,然后结束。
[0016]通过上面【具体实施方式】,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的几种【具体实施方式】。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。
【主权项】
1.一种数据查询的方法,其特征在于,该数据查询方法步骤如下: 步骤1:把数据库中的数据分离为分散数据和连续数据,并分别存放在分散数据表和连续数据表中; 步骤2:确定分散数据表和连续数据表的查询顺序,记录统计分析项目及当前查询顺序,并设定统计开始时间和统计结束时间,将记录的查询总次数加一; 步骤3:根据查询顺序进行数据查询; 步骤4:判断是否到达统计结束时间; 步骤5:判断是否有信的查询请求; 步骤6:根据记录的一次查询成功次数、二次查询成功次数及查询总次数,确定所述查询顺序。
2.根据权利要求1所述的一种数据查询的方法,其特征在于,所述的步骤I具体操作如下: 步骤11:提取数据库中的一条记录; 步骤12:判断记录的索引起始数据和索引结束数据是否相等;如果相等则将该记录插入分散数据表中;如果不相等则将该记录插入连续数据表中; 步骤13:判断数据库中的记录是否提取完成。
3.根据权利要求1所述的一种数据查询的方法,其特征在于,所述步骤3具体操作如下: 步骤300:判断所述查询顺序是否为先查分散数据表; 步骤310:对分散数据表以标识索引起始数据的列进行唯一索引查询,并判断查询是否成功; 步骤311:将记录的一次查询成功的次数加一,然后结束; 步骤320:对连续数据表以标识索引起始数据和索引结束数据的两个列进行复合索引查询; 步骤321:将记录的二次查询成功的次数加一,然后结束; 步骤3101:对连续数据表以标识索引起始数据和索引结束数据的两个列进行复合索引查询; 步骤3111:将记录的一次查询成功的次数加一,然后结束; 步骤3201:对分散数据表以标识索引起始数据的列进行唯一索引查询; 步骤3211:将记录的二次查询成功的次数加一,然后结束。
4.根据权利要求1所述的一种数据查询的方法,其特征在于,所述的步骤6具体操作如下: 步骤61:根据以下公式计算一次成功的成功率和二次成功的成功率: 一次查询成功率=一次查询成功次数/查询总次数; 二次查询成功率=二次查询成功次数/查询总次数; 步骤62:比较一次成功的成功率是否大于二次成功的成功率; 步骤63:确定查询顺序为上次查询顺序,然后结束; 步骤64:交换上次查询顺序中分散数据表和连续数据表的顺序后作为查询顺序,然后结束。
【专利摘要】本发明公开了一种数据查询的方法,该数据查询方法步骤如下:把数据库中的数据分离为分散数据和连续数据,并分别存放在分散数据表和连续数据表中;确定分散数据表和连续数据表的查询顺序,记录统计分析项目及当前查询顺序,并设定统计开始时间和统计结束时间,将记录的查询总次数加一;根据查询顺序进行数据查询;判断是否到达统计结束时间;判断是否有信的查询请求;根据记录的一次查询成功次数、二次查询成功次数及查询总次数,确定所述查询顺序。本发明有效的减小了数据规模,使得数据查询效率得到了有效控制,并且该查询方法通用性强,简单易用。
【IPC分类】G06F17-30
【公开号】CN104636503
【申请号】CN201510103839
【发明人】何嘉, 孙海峰, 尤孝吉
【申请人】浪潮集团有限公司
【公开日】2015年5月20日
【申请日】2015年3月10日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1