【技术实现步骤摘要】
一种多表联合查询效率提升方法
本专利技术涉及多表联合查询
,特别涉及一种多表联合查询效率提升方法。
技术介绍
该方法主要解决数据变化不大情况下,数据库水平分表分页查询效率问题。数据变化不大,是指数据库中很少更新相关字段或删除数据行。数据库采用水平分表,可采用按时间、按取值范围、取值Hash等方式。众所周知,分页查询前端展示主要分为两个部分:数据表格显示和分页页码显示。构造前端需要的数据,需要在后端执行查询总数sql和查询当前分页sql,查询当前分页sql的结果返回当前分页数据,查询总数sql用于返回总数并构造页码。采用水平分表存储方案,可避免单表存储数据量过大时存储检索问题。水平分表分页查询处理原理:根据特定条件检索遍历分表,查询总数和查询分页数据。查询水平分表分页主要需要解决检索范围未知和查询结果合并的问题。分表分页sql查询一般的处理情况是,在单个请求中对分表进行union处理,然后进行查询条件筛选,最后获取总数和分页数据。采用这种方式从实际应用来看,查询缓慢、效率不够高效。为此,提出一种多 ...
【技术保护点】
1.一种多表联合查询效率提升方法,其特征在于,包括以下步骤:/n步骤一:用户在前端页面根据查询需求,提交包括查询条件和排序条件的请求参数;/n步骤二:前端页面获取用户提交的请求参数,采用异步请求调用后端站点,后端站点接收到请求参数后,请求后端服务进行查询,查询过程包括查询分页数据和查询总数两个过程;/n步骤三:后端服务在接收到查询分页数据和查询总数的请求后,检查任务缓存中是否包含对应的计算页码任务缓存,如果包含对应的计算页码任务缓存,从任务缓存中获取对应的计算页码任务进行计算和查找,如果未包含对应的计算页码任务缓存,创建计算总数任务,生成完总数任务后,使用单独的调度线程对任 ...
【技术特征摘要】
1.一种多表联合查询效率提升方法,其特征在于,包括以下步骤:
步骤一:用户在前端页面根据查询需求,提交包括查询条件和排序条件的请求参数;
步骤二:前端页面获取用户提交的请求参数,采用异步请求调用后端站点,后端站点接收到请求参数后,请求后端服务进行查询,查询过程包括查询分页数据和查询总数两个过程;
步骤三:后端服务在接收到查询分页数据和查询总数的请求后,检查任务缓存中是否包含对应的计算页码任务缓存,如果包含对应的计算页码任务缓存,从任务缓存中获取对应的计算页码任务进行计算和查找,如果未包含对应的计算页码任务缓存,创建计算总数任务,生成完总数任务后,使用单独的调度线程对任务缓存中的计算页码任务进行查找和后续计算分配,后端服务处理后得到分页结构数据,并将分页结构数据返回给前端页面;
步骤四:前端页面在接收分页结构数据后,生成数据表格。
2.根据权利要求1所述的一种多表联合查询效率提升方法,其特征在于,所述步骤一中查询条件包括字段、操作符和查询值。
3.根据权利要求1所述的一种多表联合查询效率提升方法,其特征在于,所述步骤一中排序条件包括字段和排序符号。
4.根据权利要求1所述的一种多表联合查询效率提升方法,其特征在于,所述后端站点包括后端站点分页查询接口和后端站点总数接口,所述后端服务为后端服务分页查询接口,所述任务缓存为内存数据字典。
5.根据权利要求4所述的一种多表联合查询效率提升方法,其特征在于,所述查询分页数据的具体过程:
(51)采用异步请求调用后端站点分页查询接口,后端站点分页查询接口收到请求参数后,添加当前会话编号,请求后端服务分页查询接口;
(52)后端服务分页查询接口接收到请求参数后,根据请求参数中的查询条件使用哈希算法创建任务编号;
(53)判断任务编号在内存数据字典中是否存在对应的计算页码任务缓存,如果存在对应的计算页码任务缓存时,获取主任务,并设置主任务的优先级+1,如果不存在对应的计算页码任务缓存时,构造查询的主任务和子任务;
(54)获取排序条件的请求参数,当排序条件的字段为分表拆分字段时,根据该排序字段,构造子任务优先级,设置每个子任务的后续子任务,当排序条件的...
【专利技术属性】
技术研发人员:谢仙宝,袁锐,匡勇,
申请(专利权)人:重庆攸亮科技股份有限公司,
类型:发明
国别省市:重庆;50
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。