[发明专利]一种数据查询方法及系统在审
申请号: | 201810510627.X | 申请日: | 2018-05-24 |
公开(公告)号: | CN108897767A | 公开(公告)日: | 2018-11-27 |
发明(设计)人: | 王秀琳 | 申请(专利权)人: | 努比亚技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 深圳智汇远见知识产权代理有限公司 44481 | 代理人: | 田俊峰 |
地址: | 518000 广东省深圳市南山区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据查询 查询 查询目标 分组 | ||
本发明实施例提出的一种数据查询方法,通过确定目标数据表,并对目标数据表进行分组,使查询目标更明确,避免了要到每个数据表中进行查询所造成的人力与时间的浪费,且实现了同时查询多个数据表,大大缩减了查询时间。
技术领域
本发明实施例涉及数据查询技术领域,具体涉及一种数据查询方法及系统。
背景技术
随着互联网用户的越来越普及,各个手机厂商都有自己的账号中心,存储用户数据,一般的手机厂商都会使用关系型数据库存储,随着用户量的增长,一般账号中心都不将用户数据存储在一张表中,都会采用多个库和多个表进行存储,也就是所谓的分库分表。这也是互联网公司的通用做法,不管是MySQL这类的关系型数据库或者是MongoDB这类的NoSQL数据库也不可能把所有的用户都放在一张表中,因为用户通常都是上千万甚至达到好几个亿。分库分表存储避免了单个库或者单个表承受过大的并发,导致运行缓慢。但是由于做了分表分库后,要想查询用户信息就不能在一个表中一次性查出,而需要到每个表中去查询,但是这对运营人员的查询提出了很大的麻烦,例如游戏运营人员需要去查询某次活动的中奖用户就需反复的查询,影响运营效率。
上述对问题的发现过程的描述,仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本发明实施例提供了一种数据查询方法及系统。
有鉴于此,第一方面,本发明实施例提供一种数据查询方法,用于对以分库分表方式存储的数据进行查询,包括:
获取待查询用户的已知信息;
根据用户的已知信息确定与所述待查询用户相关的数据所在的n个目标数据表,n≥1;
对n个目标数据表进行分组;
同时对每组目标数据表进行查询,提取与待查询用户相关的数据。
获取待查询用户的已知信息,包括:
接收包含有至少一个字段的查询模板,所述查询模板中的字段内容已填写;
将已填写的字段内容确定为所述待查询用户的已知信息。
根据用户的已知信息确定与所述待查询用户相关的数据所在的目标数据表,包括:
将所述已知信息转化成用户编码UID;
从已有的多个数据表中,根据所述用户编码UID确定与所述待查询用户相关的数据所在的目标数据表。
将所述已知信息转换成用户编码UID,包括:
根据预先建立的用户已知信息与用户编码UID的key-value映射关系将所述已知信息转换成用户编码UID。
根据所述用户编码UID确定与所述待查询用户相关的数据所在的目标数据表,包括:
采用与数据存储时所用的分库分表规则一致的分库分表规则对由所述已知信息转化成的用户编码UID进行分表计算;
根据计算结果,确定用户编码UID对应的与所述待查询用户相关的数据所在的目标数据表。
对n个目标数据表进行分组,包括:
获取CPU的线程数;
在每个线程中创建一个查询队列;
以每一个目标数据表为一个子任务,将所有的子任务平均分配到查询队列中。
同时对每组目标数据表进行查询,提取与待查询用户相关的数据,包括:
同时开启全部线程,执行查询队列中的子任务,提取与待查询用户相关的数据;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于努比亚技术有限公司,未经努比亚技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810510627.X/2.html,转载请声明来源钻瓜专利网。