【技术实现步骤摘要】
本专利技术属于数据查询
,涉及针对多数据库表的跨库分页查询方法。
技术介绍
随着大数据时代的来临,针对海量数据的查询越来越不容易,其查询的效率也备受关注。以银行业金融行业为例,随着银行卡产业的高速发展,每日的跨行交易总量已经突破了三千万笔,传统一个数据库单张表的方式,已经远远不能满足数据库运维的需求,拆分数据库表和拆分数据库是必然的选择。因此,各种交易数据会以多个数据库、每个数据库对应多张数据库表的形式来存储。目前针对多张位于不同数据库的数据库表的查询中,比较通用方法的有以下几种。第一种,为多张数据库表创建视图,通过访问视图来达到对多张数据库表的访问。针对每张数据库表数据量不是特别大、表不是特别多情况,创建视图是一种简单可行的方案。但是在每张数据库表的数据量比较大且数据库表张数比较多的情况(例如:每张表数据量超过3千万,366张数据表)下,即使创建了索引,通过视图访问也会效率十分低下,甚至出现不可访问的情况。第二中,通过创建nickname(昵称)的方式,将跨数据库查询转换成单库查询。采用nickname后,不能完全实现数据库之间相互独立,存在潜在的安全隐患。在银行、金融等对数据安全要求比较高的行业,已经禁止采用nickname。即使在安全性要求较低的数据查询领域采用nickname,也只能解决跨库访问的问题,仍然面临数据库表张数过多的问题。有鉴于此,有必要提出一种新型的针对多数据库表的跨库查询方法。
技术实现思路
本专利技术的目的在于,提高多数据库表跨库查询的查询效率。< ...
【技术保护点】
一种数据分页查询方法,其中,每页查询记录的输出对应一次查询,对M个数据库中的N张数据库表进行数据查询的指令对应至少一页查询,其中M和N为整数,M≥2,N≥M,每个数据库至少对应一张数据库表;其特征在于,所述数据分页查询方法包括以下步骤: 接收到需要对M个数据库中的N张数据库表进行数据查询的所述指令; 判断在缓存中是否存储有对应该指令的反映查询记录情况的统计信息,从而判断该指令在缓存的数据存储周期内是否是第一次接收; 如果缓存中没有存储所述统计信息,执行以下步骤: S110,将该指令按查询任务拆分为F个子任务,每个子任务对应一个数据库的一张或多张数据库表的查询,其中F为整数,N≥F≥M; S120,并行地执行F个子任务;S130,在执行完成后返回所有F个子任务对应的查询记录的总的条数G,并返回第一前Q条查询记录,其中,Q为分页查询时每页输出的查询记录的条数,G≥Q;S140,生成所述统计信息并将该统计信息存储至所述缓存,所述统计信息包括每个子任务对应的查询记录的条数;S150,将第一前Q条查询记录输出以输出第一页查询结果;如果缓存中存储有所述统计信息,执行以 ...
【技术特征摘要】
1.一种数据分页查询方法,其中,每页查询记录的输出对应一次查询,对M个数据库中的N张数据库表进行数据查询的指令对应至少一页查询,其中M和N为整数,M≥2,N≥M,每个数据库至少对应一张数据库表;
其特征在于,所述数据分页查询方法包括以下步骤:
接收到需要对M个数据库中的N张数据库表进行数据查询的所述指令;
判断在缓存中是否存储有对应该指令的反映查询记录情况的统计信息,从而判断该指令在缓存的数据存储周期内是否是第一次接收;
如果缓存中没有存储所述统计信息,执行以下步骤:
S110,将该指令按查询任务拆分为F个子任务,每个子任务对应一个数据库的一张或多张数据库表的查询,其中F为整数,N≥F≥M;
S120,并行地执行F个子任务;
S130,在执行完成后返回所有F个子任务对应的查询记录的总的条数G,并返回第一前Q条查询记录,其中,Q为分页查询时每页输出的查询记录的条数,G≥Q;
S140,生成所述统计信息并将该统计信息存储至所述缓存,所述统计信息包括每个子任务对应的查询记录的条数;
S150,将第一前Q条查询记录输出以输出第一页查询结果;
如果缓存中存储有所述统计信息,执行以下步骤:
S210,根据所述统计信息获知预计的查询记录对应的一个或多个子任务;
S220,并行执行所述F个子任务中的该一个或多个子任务;
S230,返回第二前Q条查询记录并将该Q条查询记录按一页查询结果输出。
2.如权利要求1所述的数据分页查询方法,其特征在于,所述第一或第二前Q条查询记录为对应于多个子任务所返回的查询记录时,合并该多个子任务所返回的查询记录。
3.如权利要求1所述的数据分页查询方法,其特征在于,基于所述总的条数G以及每页输出的查询记录的条数Q,如果G大于Q,则返回所述接收步骤,并在所述判断步骤中判断为缓存中存储有所述统计信息,以重复执行所述步骤S210至S230,从而总共输出K页查询结果,其中K为将G除以Q的结果向上取整得到的整数。
4.如权利要求1所述的数据分页查询方法,其特征在于,所述指令为SQL指令,所述SQL指令按消息摘要算法5(MD5)处理以得出其MD5摘要信息。
5.如权利要求4所述的数据分页查询方法,其特征在于,所述统计信息被表述为以下格式:
<MD5(SQL),(<Split0,F1>,<Split1, F2>,…,<Split(F-1), FF>)>;...
【专利技术属性】
技术研发人员:唐真,周继恩,汤茂安,李伟,
申请(专利权)人:中国银联股份有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。