一种数据查询方法及系统技术方案

技术编号:19593273 阅读:29 留言:0更新日期:2018-11-28 04:50
本发明专利技术实施例提出的一种数据查询方法,通过确定目标数据表,并对目标数据表进行分组,使查询目标更明确,避免了要到每个数据表中进行查询所造成的人力与时间的浪费,且实现了同时查询多个数据表,大大缩减了查询时间。

【技术实现步骤摘要】
一种数据查询方法及系统
本专利技术实施例涉及数据查询
,具体涉及一种数据查询方法及系统。
技术介绍
随着互联网用户的越来越普及,各个手机厂商都有自己的账号中心,存储用户数据,一般的手机厂商都会使用关系型数据库存储,随着用户量的增长,一般账号中心都不将用户数据存储在一张表中,都会采用多个库和多个表进行存储,也就是所谓的分库分表。这也是互联网公司的通用做法,不管是MySQL这类的关系型数据库或者是MongoDB这类的NoSQL数据库也不可能把所有的用户都放在一张表中,因为用户通常都是上千万甚至达到好几个亿。分库分表存储避免了单个库或者单个表承受过大的并发,导致运行缓慢。但是由于做了分表分库后,要想查询用户信息就不能在一个表中一次性查出,而需要到每个表中去查询,但是这对运营人员的查询提出了很大的麻烦,例如游戏运营人员需要去查询某次活动的中奖用户就需反复的查询,影响运营效率。上述对问题的发现过程的描述,仅用于辅助理解本专利技术的技术方案,并不代表承认上述内容是现有技术。
技术实现思路
为了解决上述技术问题或者至少部分地解决上述技术问题,本专利技术实施例提供了一种数据查询方法及系统。有鉴于此本文档来自技高网...

【技术保护点】
1.一种数据查询方法,用于对以分库分表方式存储的数据进行查询,其特征在于,包括:获取待查询用户的已知信息;根据用户的已知信息确定与所述待查询用户相关的数据所在的n个目标数据表,n≥1;对n个目标数据表进行分组;同时对每组目标数据表进行查询,提取与待查询用户相关的数据。

【技术特征摘要】
1.一种数据查询方法,用于对以分库分表方式存储的数据进行查询,其特征在于,包括:获取待查询用户的已知信息;根据用户的已知信息确定与所述待查询用户相关的数据所在的n个目标数据表,n≥1;对n个目标数据表进行分组;同时对每组目标数据表进行查询,提取与待查询用户相关的数据。2.根据权利要求1所述的数据查询方法,其特征在于,获取待查询用户的已知信息,包括:接收包含有至少一个字段的查询模板,所述查询模板中的字段内容已填写;将已填写的字段内容确定为所述待查询用户的已知信息。3.根据权利要求1所述的数据查询方法,其特征在于,根据用户的已知信息确定与所述待查询用户相关的数据所在的目标数据表,包括:将所述已知信息转化成用户编码UID;从已有的多个数据表中,根据所述用户编码UID确定与所述待查询用户相关的数据所在的目标数据表。4.根据权利要求3所述的数据查询方法,其特征在于,将所述已知信息转换成用户编码UID,包括:根据预先建立的用户已知信息与用户编码UID的key-value映射关系将所述已知信息转换成用户编码UID。5.根据权利要求3所述的数据查询方法,其特征在于,根据所述用户编码UID确定与所述待查询用户相关的数据所在的目标数据表,包括:采用与数据存储时所用的分库分表规则一致的分库分表规则对由所述已知信息转化成的用户编码UID进行分表计算;根据计算结果,确定用户编码UID对应的与所述待查询用户相关的数据所在的目标数据表。6.根据权利要求1所述的数据查询方法,其特征在于,对n个目标数据表进行分组,包括:获取CPU的线程数;在每个线程中创建一个查询队列;以每一个目标数据表为一个子任务,将所有的子任务平均分配到查询队列中。7.根据权利要求6所述的数据查询方法,其特征在于,同时对每组目标数据表进行查询,提取与待查询用户相关的数据,包括:同时开启全部线程,执行查询队列中的子任务,提取与待查询用户相关的数据;执行过程中,判断第一查询队列中的子任务是否执行完毕;当第一查询队列的子任务执行完毕时,判断第二队列中的任务是否执行完毕;当第二查询队列未执行完毕时,判断第二查询队列的子任务是否由1个线程执行;当第二查询队列的子任务由1个线程执行时,确定第二查询队列中预设线程的执行方向;控制所述第一查询队列对应的线程,从所述第二查询队列中与所述执行方向相反的端部,对所述第二查询队列中的...

【专利技术属性】
技术研发人员:王秀琳
申请(专利权)人:努比亚技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1