一种分页查询方法及装置的制造方法
【技术领域】
[0001]本发明涉及空中固件升级(FOTA,Firmware Over The Air)系统领域,尤其涉及一种分页查询方法及装置。
【背景技术】
[0002]随着大量移动终端用户进行FOTA升级,FOTA系统产生的数据也随之大量增加,并持久化存储到数据库(如MongoDB数据库)中,当数据库的单表写入的数据量达到千万级别时,持久化写入的性能急剧下降,从而严重影响FOTA系统在大用户量下持续运行的稳定性,同时,查询相应升级数据耗时也随之增加,严重影响升级数据的统计查询功能。比如,根据实际测试,对MongoDB数据库进行多条件分页查询时,若源数据量为200万,需耗时16秒左右才会呈现首页;若源数据量为1000万,则需耗时两分钟左右;那么,如果源数据量达到亿级以上,查询耗时则更加漫长,无法快速响应用户的需求,大大降低了用户的使用体验。
【发明内容】
[0003]有鉴于此,本发明的主要目的在于提供一种分页查询方法及装置,能快速响应查询结果,减少等待时间,提升用户的使用体验。
[0004]为达到上述目的,本发明的技术方案是这样实现的:
[0005]本发明提供了一种分页查询方法,数据库中的数据以分表的形式进行存储,且数据库中设置有存储各分表信息的索引表,所述方法包括:
[0006]获取查询阈值;
[0007]按照时间倒序方式从所述索引表中截取满足所述查询阈值范围的分表;
[0008]以所截取的分表作为查询数据源,进行分页查询。
[0009]优选地,所述索引表中至少包含每个分表中的下述信息:
[0010]表名、创建时间、最小插入时间、最大插入时间、数据量。
[0011 ] 优选地,所述获取查询阈值,包括:
[0012]根据系统负载情况设定查询阈值。
[0013]优选地,所述按照时间倒序方式从所述索引表中截取满足所述查询阈值范围的分表,包括:
[0014]当无查询时间区间条件且无筛选条件时,直接按照时间倒序方式从所述索引表中截取满足所述查询阈值范围的分表。
[0015]优选地,所述按照时间倒序方式从所述索引表中截取满足所述查询阈值范围的分表,包括:
[0016]当有查询时间区间条件时,结合索引表中所记录的最小插入时间、最大插入时间,根据所述查询时间区间条件进行分表定位;
[0017]判断符合所述查询时间区间条件的分表的总数据量是否小于等于查询阈值,如果是,则截取符合所述查询时间区间条件的分表,并将所述符合所述查询时间区间条件的分表作为查询数据源;如果否,则在满足所述查询时间区间范围内的分表中,按照时间倒序方式从所述索引表中截取满足所述查询阈值范围的分表。
[0018]优选地,当有查询时间区间条件、且符合所述查询时间区间条件的分表的总数据量大于查询阈值时,所述方法还包括:
[0019]在返回查询结果时,输出第一提示信息;其中,所述第一提示信息用于提醒用户所述查询结果的第一查询时间区间。
[0020]上述方案中,优选地,所方法还包括:
[0021]在返回查询结果之前,采用异步查询技术判断所述查询时间区间所跨分表的个数;
[0022]根据所跨分表的个数生成并输出相应的提示信息。
[0023]本发明还提供了一种分页查询装置,数据库中的数据以分表的形式进行存储,且数据库中设置有存储各分表信息的索引表,所述装置包括获取单元、截取单元和查询单元;其中,
[0024]所述获取单元,用于获取查询阈值;
[0025]所述截取单元,用于按照时间倒序方式从所述索引表中截取满足所述查询阈值范围的分表;
[0026]所述查询单元,用于以所截取的分表作为查询数据源,进行分页查询。
[0027]优选地,所述索引表中至少包含每个分表中的下述信息:
[0028]表名、创建时间、最小插入时间、最大插入时间、数据量。
[0029]优选地,所述获取单元,还用于:
[0030]根据系统负载情况设定查询阈值。
[0031]优选地,所述截取单元包括:
[0032]第一截取子单元,用于当无查询时间区间条件且无筛选条件时,直接按照时间倒序方式从所述索引表中截取满足所述查询阈值范围的分表。
[0033]优选地,所述截取单元还包括:
[0034]第二截取子单元,用于:
[0035]当有查询时间区间条件时,结合索引表中所记录的最小插入时间、最大插入时间,根据所述查询时间区间条件进行分表定位;
[0036]判断符合所述查询时间区间条件的分表的总数据量是否小于等于查询阈值,如果是,则截取符合所述查询时间区间条件的分表,并将所述符合所述查询时间区间条件的分表作为查询数据源;如果否,则在满足所述查询时间区间范围内的分表中,按照时间倒序方式从所述索引表中截取满足所述查询阈值范围的分表。
[0037]优选地,所述查询单元,还用于:
[0038]若符合所述查询时间区间条件的分表的总数据量大于查询阈值,在返回查询结果时,输出第一提示信息;其中,所述第一提示信息用于提醒用户所述查询结果的第一查询时间区间。
[0039]优选地,所述查询单元,还用于:
[0040]在返回查询结果之前,采用异步查询技术判断所述查询时间区间所跨分表的个数;根据所跨分表的个数生成并输出相应的提示信息。
[0041]本发明所提供的分页查询方法及装置,获取查询阈值;根据所述查询阈值对索引表进行查询范围定位,按照时间倒序方式从所述索引表中截取满足所述查询阈值范围内的分表。如此,能快速响应查询结果,减少了等待时间,提升了用户的使用体验。采用本发明所述技术方案,即便在面对亿万级数据多条件分页查询时,也能在极短的时间内向用户返回查询结果,加快了查询速度,并能在返回查询结果的同时返回真实的查询时间范围,以更好地提醒用户当前查询结果是基于哪个时间段的数据范围,大大提升了用户的体验。
【附图说明】
[0042]图1为本发明实施例提供的分页查询方法的实现流程示意图一;
[0043]图2为本发明实施例提供的索引表与分表的关系示意图;
[0044]图3为本发明实施例提供的无查询时间区间条件时所截取的分表的示意图;
[0045]图4为本发明实施例提供的有查询时间区间条件时所截取的分表的示意图;
[0046]图5为本发明实施例提供的分页查询方法的实现流程示意图二 ;
[0047]图6为本发明实施例提供的分页查询装置的组成结构示意图一;
[0048]图7为本发明实施例提供的分页查询装置的组成结构示意图二。
【具体实施方式】
[0049]为了能够更加详尽地了解本发明的特点与技术内容,下面结合附图对本发明的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明。
[0050]图1为本发明实施例提供的分页查询方法的实现流程示意图一,所述分页查询方法可应用于FOTA系统中,FOTA系统的数据库中的数据以分表的形式进行存储,且数据库中设置有存储各分表信息的索引表,如图1所示,该分页查询方法主要包括以下步骤:
[0051]步骤101:获取查询阈值。
[0052]优选地,所述获取查询阈值,可以包括:
[0053]根据系统负载情况设定查询阈值。
[0054]具体地,可以由管理员来设定查询阈值,也可以由FOTA系统根据实际运行情况自适应设定查询阈值。
[0055]也就是说,所述查询阈值是可变的(即动态的),以便于更好地均衡FOTA系统的负载,更快地向用户返回查询结果。
[0056]这里,可以为管理员提供一个能够修改查询阈值的UI界面,以由管理员来设定查询阈值。
[0057]当然,所述Π界面可以是支持触摸输入的界面。当支持触摸输入时,管理员可通过用手指或触摸笔等触摸形式来设定查询阈值;当不支持触摸输入时,可通过对相关按键的操作来设定查询阈值。
[0058]具体地,一旦确定查询阈值之后,立即生效。
[0059]步骤102:按照时间倒序方式从所述索引表中截取满足所述查询阈值范围的分表。
[0060]优选地,所述按照时间倒序方式从所述索引表中截取满足所述查询阈值范围的分表,可以包括:
[0061]当无查询时间区间条件且无筛选条件时,直接按照时间倒序方式从所述索引表中截取满足所述查询阈值范围的分表。
[0062]优选地,所述按照时间倒序方式从所述索引表中截取满足所述查询阈值范围的分表,可以包括:
[0063]当有查询时间区间条件时,结合索引表中所记录的最小插入时间、最大插入时间,根据所述查询时间区间条件进行分表定位;
[0064]判断符合所述查