本发明专利技术揭示了一种分表联合统计查询方法、装置和系统,其中方法包括:根据查询信息中的时间段参数计算各原始表的分表,然后根据查询信息将各分表按照相同的时间分表策略进行分组,并进行组内关联;或者,将各原始表按照相同的时间分表策略进行分组,并进行组内关联,然后根据查询信息中的时间段参数计算各组原始表的分表;当有多组分表时,则以任意一组分表为基础,分别与其它组分表进行关联;当只有一组分表时,则直接进入下移步骤;对关联后的分表进行统计查询,并将查询结果合并。本发明专利技术处理数据量大大减小,消耗资源减少,而且在关联查询中,只需要输入少量代码,即可完成统计查询,方便简单。
【技术实现步骤摘要】
分表联合统计查询方法、装置和系统
本专利技术涉及到分表联合查询领域,特别是涉及到分表联合统计查询方法、装置和系统。
技术介绍
业务系统使用关系型数据库,每天都产生很多运营的数据,经过日积月累使数据量变大,以至于查找性能降低,但是数据又不能删除,因为要对这些数据进行统计分析,所以需要把这些数据移到历史表中。为了防止历史表过大,通常是每月或每周或每天建一个表。在做统计分析时,通常要关联到多个历史表和其它表联合统计查询,一般是通过时间段来分析出要那些历史表,然后拿一个历史表与其它表进行联合查询SQL(StructuredQueryLanguage,结构化查询语言),再通过“unionall”把下个历史表的同样的SQL拼接在一起,依次类推将生产一个很大动态拼接SQL;然后对这个SQL再加上整个结果集的统计,分页和排序功能。整个SQL很庞大,且拼接SQL需要大量代码来实现,对维护和开发都带来很大的工作量。如果这些历史表来自不同的分表策略,那处理起来更麻烦。把多个历史表的数据拼在一起,变成一个大表,然后行统计、分页和排序,性能低下,对数据库和服务器都造成巨大的压力。
技术实现思路
本专利技术的主要目的为提供一种查找性能高,对数据库和服务器要求低、降低开发难度,提高效率的分表联合统计查询方法、装置和系统。为了实现上述专利技术目的,本专利技术首先提出一种分表联合统计查询方法,包括:根据查询信息中的时间段参数计算各原始表的分表,然后根据查询信息将各分表按照相同的时间分表策略进行分组,并进行组内关联;或者,将各原始表按照相同的时间分表策略进行分组,并进行组内关联,然后根据查询信息中的时间段参数计算各组原始表的分表;当有多组分表时,则以任意一组分表为基础,分别与其它组分表进行关联,然后对关联后的分表进行统计查询,并将查询结果合并;当只有一组分表时,则直接对该组分表进行统计查询,并将查询结果合并。进一步地,所述对关联后的分表进行统计查询,并将查询结果合并的步骤,包括:遍历二维数组的原始表和/或分表,通过线程池异步调用查询功能,将一维的多个分表和查询参数输入查询组件得到相应的多个结果集;将多个结果集按照预设的方式合并成总结果集,并且将总结果集存放在指定的数据列表中。进一步地,所述当有多组分表时,则以任意一组分表为基础,分别与其它组分表进行关联的步骤,包括:以任意一组分表为基础,分别与其它组分表同时并行关联。进一步地,所述当有多组分表时,则以任意一组分表为基础,分别与其它组分表进行关联,然后对关联后的分表进行统计查询,并将查询结果合并;当只有一组分表时,则直接对该组分表进行统计查询,并将查询结果合并的步骤之后,包括:对合并后的查询结果进行排序、分页处理。本专利技术还提供一种分表联合统计查询方法,根据查询指令调用封装有上述任一项所述的分表联合统计查询方法的查询组件。本专利技术还提供一种分表联合统计查询装置,包括:分组单元,用于根据查询信息中的时间段参数计算各原始表的分表,然后根据查询信息将各分表按照相同的时间分表策略进行分组,并进行组内关联;或者,将各原始表按照相同的时间分表策略进行分组,并进行组内关联,然后根据查询信息中的时间段参数计算各组原始表的分表;关联查询单元,用于当有多组分表时,则以任意一组分表为基础,分别与其它组分表进行关联;然后对关联后的分表进行统计查询,并将查询结果合并;当只有一组分表时,则直接对该组分表进行统计查询,并将查询结果合并。进一步地,所述关联查询单元,包括:遍历查询模块,用于遍历二维数组的原始表和/或分表,通过线程池异步调用查询功能将一维的多个分表和查询参数,输入查询组件得到相应的多个结果集;合并保存模块,用于将多个结果集按照预设的方式合并成总结果集,并且将总结果集存放在指定的数据列表中。进一步地,所述关联查询单元,还包括:并行模块,用于以任意一组分表为基础分别与其它组分表同时并行关联。进一步地,所述分表联合统计查询装置还包括:处理单元,用于对合并后的查询结果进行排序、分页处理。本专利技术还提供一种分表联合统计查询系统,用于调用封装有上述任一项所述的分表联合统计查询装置。本专利技术的分表联合统计查询方法、装置和系统,先将原始数据按照时间分表策略分组,然后根据时间段参数进行计算分表,或者先根据时间段参数计算各原始表的分表,然后将各分表按照时间分表策略分组,都会得到指定的分表组,然后将分表组进行关联,可以将需要查询的内容从大量的原始表中截取出来,从而减小数据的处理量,降低数据库的要求,降低资源的消耗,还可以降低开发的难度。而将分表联合统计查询方法或装置预先封装起来,那么在使用的时候,直接调用即可,只需要少量的代码即可完成调用,使基于多个动态分表和其它表关联查询时,无论动态历史表有多少张,有多少种动态表等,都如同一个固定的表与其它表联合查询一样,查询简单快速。附图说明图1为本专利技术一实施例的分表联合统计查询方法的流程图;图2为本专利技术另一实施例的分表联合统计查询方法的流程图;图3为本专利技术一实施例的以最小时间分表策略的分表组为基础的具体的查询过程的流程图;图4为本专利技术一实施例的分表联合统计查询装置的结构框图;图5为本专利技术另一实施例的分表联合统计查询装置的结构框图;图6为本专利技术另一实施例的关联查询单元的结构框图;图7为本专利技术另一实施例的关联模块的结构框图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。参照图1,本专利技术实施例提出一种分表联合统计查询方法,包括步骤:S1、根据查询信息中的时间段参数计算各原始表的分表,然后根据查询信息将各分表按照相同的时间分表策略进行分组,并进行组内关联;S2、当有多组分表时,则以任意一组分表为基础,分别与其它组分表进行关联,然后对关联后的分表进行统计查询,并将查询结果合并;当只有一组分表时,则直接对该组分表进行统计查询,并将查询结果合并。如上述步骤S1,上述时间分表策略是指以时间为依据进行分表的策略,比如,支持按年、月、日、星期等时间分表的策略,按年分表就是每年生一个表,按月就是每月生成一个表,其它的同理。将原始表按分表策略分组,可以将原始表有规律地分成多组,方便组内关联;所述时间段参数是指包含于查询信息中的一段时间参数,比如时间段参数为2014年1月1日至2014年1月30,那么各原始表就会将这一时间段内的数据生成分表分出,以便于查询该时间段的数据。在另一实施例中,还可以将各原始表按照相同的时间分表策略进行分组,并进行组内关联,然后根据查询信息中的时间段参数计算各组原始表的分表,需要理解的是,如果原始表的数据记录到2014年1月30日,还没有记录2014年1月31日的时候,那么以月分表策略的1月份的分表即为1月份的原始表。如上述步骤S2,当有多组分表时,是指在上述步骤S1中,存在有多种分表策略,那么必然的会存在多组分表,所以需要以任意一组分表为基础分别与其它组分表进行关联;但是也可能所有的原始表只有一种分表策略,那么就无需进行与其他组分表关联,可以直接进行对其组内关联的分表进行统计查询;在一具体实施例中,以最小时间分表策略的分表组为基础与其它组的分表进行关联查询,可以充分、快速的查询。比如,根据时间段查本文档来自技高网...
【技术保护点】
一种分表联合统计查询方法,其特征在于,包括:根据查询信息中的时间段参数计算各原始表的分表,然后根据查询信息将各分表按照相同的时间分表策略进行分组,并进行组内关联;或者,将各原始表按照相同的时间分表策略进行分组,并进行组内关联,然后根据查询信息中的时间段参数计算各组原始表的分表;当有多组分表时,则以任意一组分表为基础,分别与其它组分表进行关联,然后对关联后的分表进行统计查询,并将查询结果合并;当只有一组分表时,则直接对该组分表进行统计查询,并将查询结果合并。
【技术特征摘要】
1.一种分表联合统计查询方法,其特征在于,包括:根据查询信息中的时间段参数计算各原始表的分表,然后根据查询信息将各分表按照相同的时间分表策略进行分组,并进行组内关联;或者,将各原始表按照相同的时间分表策略进行分组,并进行组内关联,然后根据查询信息中的时间段参数计算各组原始表的分表;在关联时,时间分表策略的时间单位大的分表与时间分表策略的时间单位小的分表,根据时间包含的关系进行对应关联;当有多组分表时,则以任意一组分表为基础,分别与其它组分表进行关联,然后对关联后的分表进行统计查询,并将查询结果合并;当只有一组分表时,则直接对该组分表进行统计查询,并将查询结果合并。2.根据权利要求1所述的分表联合统计查询方法,其特征在于,所述对关联后的分表进行统计查询,并将查询结果合并的步骤,包括:遍历二维数组的原始表和/或分表,通过线程池异步调用查询功能,将一维的多个分表和查询参数输入查询组件得到相应的多个结果集;将多个结果集按照预设的方式合并成总结果集,并且将总结果集存放在指定的数据列表中。3.根据权利要求1所述的分表联合统计查询方法,其特征在于,所述当有存在多组分表时,则以任意一组分表为基础,分别与其它组分表进行关联的步骤,包括:以任意一组分表为基础,分别与其它组分表同时并行关联。4.根据权利要求1所述的分表联合统计查询方法,其特征在于,所述当有多组分表时,则以任意一组分表为基础,分别与其它组分表进行关联,然后对关联后的分表进行统计查询,并将查询结果合并;当只有一组分表时,则直接对该组分表进行统计查询,并将查询结果合并的步骤之后,包括:对合并后的查询结果进行排序、分页处理。5.一种分...
【专利技术属性】
技术研发人员:梁文,
申请(专利权)人:深圳市汇朗科技有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。