CN112182021B - 一种用户数据查询方法、装置和*** - Google Patents
一种用户数据查询方法、装置和*** Download PDFInfo
- Publication number
- CN112182021B CN112182021B CN202011211380.5A CN202011211380A CN112182021B CN 112182021 B CN112182021 B CN 112182021B CN 202011211380 A CN202011211380 A CN 202011211380A CN 112182021 B CN112182021 B CN 112182021B
- Authority
- CN
- China
- Prior art keywords
- user
- data
- query
- user data
- bit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据查询方法、装置和***,用以解决数据查询效率低的问题。本方案包括:接收包含目标用户特征的用户数据查询指令,用户数据查询指令用于查询数据库中与目标用户特征关联的用户数据;获取与目标用户特征对应的预设编码值,其中,任一预设编码值对应于唯一用户特征,预设编码值为2的指数幂;将数据库中与目标用户特征对应的数据列中的各项用户数据值与目标用户特征对应的预设编码值执行位与运算,以得到第一位与运算结果,用户数据值为所在数据行关联的用户特征的预设编码值之和;根据第一位与运算结果为正数的用户数据值所在的数据行确定查询指令的查询结果。本方案基于位于运算查询用户数据,能缩短查询耗时,提高查询效率。
Description
技术领域
本发明涉及数据查询领域,尤其涉及一种数据查询方法、装置和***。
背景技术
在数据查询领域,往往采用MySQL进行数据存储,MySQL是一个关系型数据库管理***,数据存储在相互关联的多个数据表中。为了能够对数据库中存储的海量数据进行查询,通常需要将数据库中的数据实时导入至搜索引擎中。搜索引擎例如可以采用Elasticsearch,它是一个基于Lucene的搜索服务器,能提供分布式多用户能力的全文搜索功能。但是,需要通过搭建集群的方式来支持Elasticsearch的功能,需要耗费较多的服务器资源。另外,如果Elasticsearch稳定性不佳,会直接影响数据库查询效率。
如何提高数据查询效率,是本申请所要解决的技术问题。
发明内容
本申请实施例的目的是提供一种数据查询方法、装置和***,用以解决数据查询效率低的问题。
第一方面,提供了一种用户数据查询方法,包括:
接收包含目标用户特征的用户数据查询指令,所述用户数据查询指令用于查询数据库中与所述目标用户特征关联的用户数据;
获取与所述目标用户特征对应的预设编码值,其中,任一预设编码值对应于唯一用户特征,所述预设编码值为2的指数幂;
将数据库中与所述目标用户特征对应的数据列中的各项用户数据值与所述目标用户特征对应的预设编码值执行位与运算,以得到第一位与运算结果,所述用户数据值为所在数据行关联的用户特征的预设编码值之和;
根据所述第一位与运算结果为正数的用户数据值所在的数据行确定所述查询指令的查询结果。
第二方面,提供了一种用户数据存储方法,包括:
接收至少一组待存储用户数据,其中,每组所述待存储用户数据包括具有目标属性的至少一个用户特征;
对所述至少一组待存储用户数据中的每种待存储用户特征执行编码,以得到与每种待存储用户特征分别对应的预设编码值,其中,所述预设编码值为2的指数幂;
将每种待存储用户特征和对应的所述预设编码值关联存储为编码表;
根据所述至少一组待存储用户数据生成数据表,所述数据表中包括根据每组所述待存储用户数据分别生成的数据行,所述数据行中包括至少一项用户数据值,所述用户数据值为与所述数据行对应的待存储用户数据中具有目标属性的各个待存储用户特征的预设编码值之和;
关联存储所述编码表和所述数据表。
第三方面,提供了一种用户数据查询装置,包括:
查询模块,接收包含目标用户特征的用户数据查询指令,所述用户数据查询指令用于查询数据库中与所述目标用户特征关联的用户数据;
获取模块,获取与所述目标用户特征对应的预设编码值,其中,任一预设编码值对应于唯一用户特征,所述预设编码值为2的指数幂;
执行模块,将数据库中与所述目标用户特征对应的数据列中的各项用户数据值与所述目标用户特征对应的预设编码值执行位与运算,以得到第一位与运算结果,所述用户数据值为所在数据行关联的用户特征的预设编码值之和;
确定模块,根据所述第一位与运算结果为正数的用户数据值所在的数据行确定所述查询指令的查询结果。
第四方面,提供了一种数据库,包括:
接收模块,接收至少一组待存储用户数据,其中,每组所述待存储用户数据包括具有目标属性的至少一个用户特征;
编码模块,对所述至少一组待存储用户数据中的每种待存储用户特征执行编码,以得到与每种待存储用户特征分别对应的预设编码值,其中,所述预设编码值为2的指数幂;
第一存储模块,将每种待存储用户特征和对应的所述预设编码值关联存储为编码表;
生成模块,根据所述至少一组待存储用户数据生成数据表,所述数据表中包括根据每组所述待存储用户数据分别生成的数据行,所述数据行中包括至少一项用户数据值,所述用户数据值为与所述数据行对应的待存储用户数据中具有目标属性的各个待存储用户特征的预设编码值之和;
第二存储模块,关联存储所述编码表和所述数据表。
第五方面,提供了一种用户数据查询***,包括:
至少一个如第三方面所述的用户数据查询装置;
与各个所述用户数据查询装置通信连接的如第四方面所述的数据库。
第六方面,提供了一种电子设备,该电子设备包括处理器、存储器及存储在该存储器上并可在该处理器上运行的计算机程序,该计算机程序被该处理器执行时实现如第一方面该的方法的步骤。
第七方面,提供了一种计算机可读存储介质,该计算机可读存储介质上存储计算机程序,该计算机程序被处理器执行时实现如第一方面该的方法的步骤。
在本申请实施例中,通过接收包含目标用户特征的用户数据查询指令,用户数据查询指令用于查询数据库中与目标用户特征关联的用户数据;获取与目标用户特征对应的预设编码值,其中,任一预设编码值对应于唯一用户特征,预设编码值为2的指数幂;将数据库中与目标用户特征对应的数据列中的各项用户数据值与目标用户特征对应的预设编码值执行位与运算,以得到第一位与运算结果,用户数据值为所在数据行关联的用户特征的预设编码值之和;根据第一位与运算结果为正数的用户数据值所在的数据行确定查询指令的查询结果。本方案基于位于运算查询用户数据,能缩短查询耗时,提高查询效率。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明的一个实施例一种用户数据存储方法的流程示意图;
图2是本发明的一个实施例一种用户数据查询方法的流程示意图之一;
图3是本发明的一个实施例一种用户数据查询方法的流程示意图之二;
图4是本发明的一个实施例一种用户数据查询方法的流程示意图之三;
图5是本发明的一个实施例一种用户数据查询方法的流程示意图之四;
图6是本发明的一个实施例一种用户数据查询装置的结构示意图;
图7是本发明的一个实施例一种数据库的结构示意图;
图8是本发明的一个实施例一种用户数据查询装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本申请中附图编号仅用于区分方案中的各个步骤,不用于限定各个步骤的执行顺序,具体执行顺序以说明书中描述为准。
在数据查询领域,大数据是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。在大数据应用中,往往需要对存储的用户数据进行查询与调用,这些用户数据可以用于提升应用程序的性能。但是,在数据达到一定量级(对于MySQL来说通常是500万以上)时,查询的性能瓶颈就会凸显出来,带来长耗时的SQL查询,从而拉低应用程序的响应性。
为了提高数据查询效率,可以通过分库分表来处理海量的数据。但是,这种方案也存在一些缺点,一方面项目代码中编码复杂,另一方面,数据被分割到多张表中,在运维场景下查询需要到多张表中查询,十分不便。
为了提高数据查询效率,还可以将海量数据都实时导入到搜索引擎中,例如ElasticSearch(ES),将对数据库的查询转移到ES上进行,凭借ES的强大性能来解决查询性能问题。但这种做法也存在一些缺点,需要额外的服务器资源来搭建ES集群,耗费较多资源,并且SQL查询十分依赖ES服务的稳定性。
为了解决现有技术中存在的问题,在本实施例中,以用户手机号和用户业务类别信息为例进行说明,如下表T-X所示,在实际应用中,用户数据还可以包括其他种类的用户信息。
表T-X
id | phone | business_category | 其他字段… |
1 | 13022337788 | DAFENGCHE | xxx |
2 | 13022337788 | TANGECHE | xxx |
3 | 13022337788 | JIAXUAN | xxx |
4 | 15044559900 | DAFENGCHE | xxx |
5 | 15044559900 | TANGECHE | xxx |
6 | 15044559900 | JIAXUAN | xxx |
在表T-X中,左侧第一列表示每条用户数据的编号,第二列表示用户手机号,第三列表示用户业务类别信息。其他字段列还可以包括用户的其他信息,如地理位置信息、业务属性信息等。
在执行数据查询之前,本实施例先对表T-X中的数据进行处理,存储为便于查询的格式。
参见图1,本实施例提供一种用户数据存储方法,包括:
S11:接收至少一组待存储用户数据,其中,每组所述待存储用户数据包括具有目标属性的至少一个用户特征。
本实施例中示出了6组待存储用户数据,每组待存储的用户数据包括两种属性,一种属性是用户手机号,另一种属性是用户业务类别信息。在业务类别信息中,包含了3个用户特征,分别是“DAFENGCHE”、“TANGECHE”、“JIAXUAN”。在本实例中,将用户手机号所在列称为业务主键列BizColumn,将用户业务类别信息所在列称为特征值列FeatureColumn,其中,特征值列的取值范围是可穷举完全的,可取值的个数记为M。
S12:对所述至少一组待存储用户数据中的每种待存储用户特征执行编码,以得到与每种待存储用户特征分别对应的预设编码值,其中,所述预设编码值为2的指数幂;
在本步骤中,我们需要对用户特征进行编码,编码的核心意义在于使用特殊比特位的值来记录用户特征,从而可以利用特殊比特位的位与运算来提升性能。编码值的计算逻辑为:采用等比数列2^(N-1),N>=1,所以编码值依次为:1、2、4、8,以此类推。
基于上述编码规则,对上表T-X中的用户特征进行编码,“DAFENGCHE”编码值为1,“TANGECHE”编码值为2,“JIAXUAN”编码值为4。
S13:将每种待存储用户特征和对应的所述预设编码值关联存储为编码表。
基于以上编码值与用户特征的对应关系,可以根据用户特征、编码值(二进制和十进制)对应生成编码表,另外,还可以为各项用户特征添加备注,如下表N-C所示:
表N-C
S14:根据所述至少一组待存储用户数据生成数据表,所述数据表中包括根据每组所述待存储用户数据分别生成的数据行,所述数据行中包括至少一项用户数据值,所述用户数据值为与所述数据行对应的待存储用户数据中具有目标属性的各个待存储用户特征的预设编码值之和。
根据特征值编码表中用户特征与编码值的对应关系,多个用户特征的多种组合关系如下表N-A所示:
表N-A
基于上表N-A示出的用户特征的各种组合,根据待存储用户数据生成以下数据表N-X:
表N-X
id | phone | business_category_flag | 其他字段… |
1 | 13022337788 | 7 | xxx |
2 | 15044559900 | 7 | xxx |
S15:关联存储所述编码表和所述数据表。
最后,将表N-X与表N-C关联存储。
在未处理的数据存储结构中(表T-X),2个业务主键拥有6条用户数据,最终存储形式表现为6条数据。而采用本申请实施例提供的方案后,使用了business_category_flag来存储原business_category的信息。以phone=13022337788为例,原先13022337788有3条不同business_category(DAFENGCHE、TANGECHE、JIAXUAN)的线索数据。而这3个business_category的特征值编码为1、2、4,将其累加得到1+2+4=7,然后存储至business_category_flag。
对比处理前后的数据可以看到,基于本实施例提供的方案,原先的6条数据被压缩成了2条数据,有效缩小了占用的存储空间。
在本实施例中,用户特征依赖于一个业务主键进行压缩,在这个例子中,业务主键就是phone,用于标识一个用户。business_category(业务线)是用户的一种属性,其中包含多种用户特征,用于标识这个用户产生了哪些业务线的线索。我们假设有N个phone,business_category总计M个。在理想情况下,每一个phone都产生了M条线索(即每个business_category都产生1条线索),即原先有N*M条数据,压缩后就变成N条数据,此时该算法的压缩比例就是:Rate=(1–N/N*M)=(M-1)/M。当M越大时,Rate就越接近100%,压缩性能越好。由此可见,本实施例提供的方案尤其适用于大数据存储,能显著缩小占用的存储空间。
基于以上存储的用户数据,本申请实施例提供一种用户数据查询方法,如图2所示,包括:
S21:接收包含目标用户特征的用户数据查询指令,所述用户数据查询指令用于查询数据库中与所述目标用户特征关联的用户数据。
用户数据查询指令可以是由手机、电脑、电子手表等电子设备生成的,在本实施例中,假设用户数据查询指令中包含的目标用户特征为“TANGECHE”。
S22:获取与所述目标用户特征对应的预设编码值,其中,任一预设编码值对应于唯一用户特征,所述预设编码值为2的指数幂;
在本实例中,可以通过查询编码表的方式来获取“TANGECHE”对应的预设编码值。通过查询可以确定对应的预设编码值是2,二进制编码为00000010。
S23:将数据库中与所述目标用户特征对应的数据列中的各项用户数据值与所述目标用户特征对应的预设编码值执行位与运算,以得到第一位与运算结果,所述用户数据值为所在数据行关联的用户特征的预设编码值之和。
将确定的预设编码值与数据库中的用户数据值进行位与运算。参见表N-X,business_category_flag列的第一项用户数据值为7,7的二进制编码是00000111。将7与2进行位与运算时,只有第二位相同是1,所以结果是00000010,换算成十进制就是2,2>0是成立的,所以第一项用户数据值是包含TANGECHE的。
假如business_category_flag列某一项用户数据值为4,因为4的二进制编码是00000100,2者进行位与运算时,没有任何一位相同,所以结果是00000000,换算成十进制就是0,0>0是不成立的,那么,这一项用户数据值就不包含TANGECHE。
S24:根据所述第一位与运算结果为正数的用户数据值所在的数据行确定所述查询指令的查询结果。
基于位于运算的结果,将运算结果为正数的用户数据值所在的数据行输出为查询指令的查询结果。
本申请实施例基于用户特征,采用比特位进行查询,解决了SQL查询耗时问题,提升应用程序性能。本方案尤其适用于大量用户数据的查询,能有效提高查询效率。而且,本实施例采用字节的位与运算,直接通过逻辑电路就可以取到查询结果,查询效率明显由于关键词搜索的方式。
基于上述实施例提供的方案,可选的,所述用户数据查询指令还包括用户附加特征,所述用户数据查询指令用于查询数据库中与所述目标用户特征和所述用户附加特征关联的数据,其中,如图3所示,在根据所述第一位与运算结果为正数的用户数据值所在的数据行确定所述查询指令的查询结果之前,还包括:
S31:获取与所述用户附加特征对应的预设编码值。
在本实施例中,假设需要查询同时有TANGECHE和JIAXUAN的用户数据,即:business_category_flag&6>0。
基于上述实例可以获知,TANGECHE对应的预设编码值是2,二进制编码为00000010,通过查询编码表的方式可以获知JIAXUAN的预设编码值是4,JIAXUAN的编码是4。
S32:将数据库中与所述用户附加特征对应的数据列中的各项用户数据值与所述用户附加特征对应的预设编码值执行位与运算,以得到第三位与运算结果。
基于上述实施例提供的方案,根据JIAXUAN的预设编码值4,与数据库中各项用户数据值进行位与运算,得到各项位与运算结果。其中,位与运算结果大于0则表明该项包含有JIAXUAN用户特征,如果运算结果不大于0则表明不包含JIAXUAN用户特征。
其中,根据所述第一位与运算结果为正数的用户数据值所在的数据行确定所述查询指令的查询结果,包括:
S33:生成第一数据集合和第三数据集合,所述第一数据集合包括所述第一位与运算结果为正数的用户数据值所在的数据行,所述第三数据集合包括所述第三位与运算结果为正数的用户数据值所在的数据行。
第一数据集合是根据第一位与运算结果生成的,其中的数据行是包含TANGECHE用户特征的数据行。第二数据集合是根据第三位与运算结果生成的,其中的数据行是包含JIAXUAN用户特征的数据行。
S34:将所述第一数据集合与所述第三数据集合的交集确定为所述查询指令的查询结果。
第一数据集合与第三数据集合的交集即同时包含有TANGECHE用户特征和JIAXUAN用户特征的数据行,将交集中的数据行输出为查询指令的查询结果。
通过本实施例提供的方案能查询包含多种用户特征的用户数据,有效提高查询效率。而且,用户附加特征与目标用户特征可以是同一个属性的用户特征,即同一数据列中的用户特征。也可以是不同属性的用户特征,及用户附加特征位于一列用户数据中,而目标用户特征位于另一列用户数据中,查询灵活性强。
基于上述实施例提供的方案,可选的,所述用户数据查询指令还包括用户屏蔽特征,所述用户数据查询指令用于查询数据库中与所述目标用户特征关联且与所述用户屏蔽特征不关联的数据,其中,如图4所示,在根据所述第一位与运算结果为正数的用户数据值所在的数据行确定所述查询指令的查询结果之前,还包括:
S41:获取与所述用户屏蔽特征对应的预设编码值。
假设需要查询同时有TANGECHE、JIAXUAN,但是没有DAFENGCHE的线索,即:business_category_flag&6>0and business_category_flag&1=0。其中,DAFENGCHE即用户屏蔽特征。首先获取DAFENGCHE的预设编码值,可以通过查询编码表或其他方式确定该预设编码值为1。
S42:将数据库中与所述用户屏蔽特征对应的数据列中的各项用户数据值与所述用户屏蔽特征对应的预设编码值执行位与运算,以得到第二位与运算结果。
基于上述实施例提供的方案,将数据库中与DAFENGCHE对应的数据列中各项用户数据值与预设编码值1执行位与运算,得到第二位与运算结果。
其中,根据所述第一位与运算结果为正数的用户数据值所在的数据行确定所述查询指令的查询结果,包括:
S43:生成第一数据集合和第二数据集合,所述第一数据集合包括所述第一位与运算结果为正数的用户数据值所在的数据行,所述第二数据集合包括所述第二位与运算结果为正数的用户数据值所在的数据行。
基于上述实例,TANGECHE的编码是2,二进制编码为00000010,JIAXUAN的编码是4,二进制编码为00000100,DAFENGCHE的编码是1,二进制编码是00000001。我们可以通过编码组合的方式同时查询包含有TANGECHE和JIAXUAN的用户数据,这两个用户特征的预设编码值的和为6,二进制为00000110。假如business_category_flag=6,二进制为00000110,和6进行位与运算,结果为00000110,换算成10进制为6,6>0是成立的,所以是包含TANGECHE和JIAXUAN的。根据与6执行位与运算的运算结果大于0的用户数据值所在的数据行生成第一数据集合。
基于上述实例,根据步骤S42得到的第二位与运算结果确定包含有DAFENGCHE用户特征的数据行,生成第二数据集合。
S44:将所述第二数据集合在所述第一数据集合中的相对补集确定为所述查询指令的查询结果。
第二数据集合在第一数据集合中的相对补集为同时包含有TANGECHE和JIAXUAN的用户特征且不包含DAFENGCHE用户特征的数据行,将这些数据行作为查询结果输出。
本申请实施例提供的方案能提高查询灵活性,不仅能查询包含有一个或多个用户特征的用户数据,还能基于用户屏蔽特征对用户数据进行筛选,有效提高查询数据效率。
基于上述实施例提供的方案,可选的,获取与所述目标用户特征对应的预设编码值,如图5所示,包括:
S51:确定与所述目标用户特征对应的目标编码表,所述目标编码表包括所述数据库中数据列中包含的用户数据值对应的用户特征。
当用户数据中包含有多种用户属性时,一行用户数据可能包含有多列不同属性的用户特征。对于每一属性的用户特征,都需要建立编码表来存储用户特征与预设编码值的对应关系。
本方案的优点在于,每种属性(每列)的用户特征都可以从1开始编码,不同属性的用户特征可以重复编码,在查询时由于所在列不同所以不会相互干扰。例如,A属性中包含有3个用户特征,分别编码为1、2和4。B属性中包含有2个用户特征,分别编码为1和2。虽然A属性和B属性中都包含有编码为1、2的用户特征,但由于所在列不同,所以查询时不会相互干扰。
S52:根据所述目标编码表确定与所述目标用户特征对应的预设编码值。
由于每种属性的用户特征都分别进行编码,在确定预设编码值时先确定与要查询的用户特征相对应的目标编码表,然后再在目标编码表中查询目标用户特征对应的预设编码值。
通过本申请实施例提供的方案,能对各属性的用户特征分别进行编码,不存在不同属性的用户特征编码重复而影响查询结果的情况,尤其适用于对大量数据进行存储和查询。
在存储性能方面,在一些复杂的业务场景下,SQL查询是十分复杂和低效的。本申请实施例提供的方案,由于其操作特性是基于比特位的位与运算,执行效率天生就比SQL的等值查询、模糊查询等方案的效率高。在50w量级的模拟数据测试中,本申请实施例提供的方案检索时长比传统方案的检索时长加快了80倍。在实际生产中,表的数据量通常是百万级别甚至千万级别的,数据量越大,本方案的查询效率越显著。
为了解决现有技术中存在的问题,本申请实施例还提供一种用户数据查询装置60,如图6所示,包括:
查询模块61,接收包含目标用户特征的用户数据查询指令,所述用户数据查询指令用于查询数据库中与所述目标用户特征关联的用户数据;
获取模块62,获取与所述目标用户特征对应的预设编码值,其中,任一预设编码值对应于唯一用户特征,所述预设编码值为2的指数幂;
执行模块63,将数据库中与所述目标用户特征对应的数据列中的各项用户数据值与所述目标用户特征对应的预设编码值执行位与运算,以得到第一位与运算结果,所述用户数据值为所在数据行关联的用户特征的预设编码值之和;
确定模块64,根据所述第一位与运算结果为正数的用户数据值所在的数据行确定所述查询指令的查询结果。
通过本实施例提供的用户数据查询装置,接收包含目标用户特征的用户数据查询指令,用户数据查询指令用于查询数据库中与目标用户特征关联的用户数据;获取与目标用户特征对应的预设编码值,其中,任一预设编码值对应于唯一用户特征,预设编码值为2的指数幂;将数据库中与目标用户特征对应的数据列中的各项用户数据值与目标用户特征对应的预设编码值执行位与运算,以得到第一位与运算结果,用户数据值为所在数据行关联的用户特征的预设编码值之和;根据第一位与运算结果为正数的用户数据值所在的数据行确定查询指令的查询结果。本方案基于位于运算查询用户数据,能缩短查询耗时,提高查询效率。
为了解决现有技术中存在的问题,本申请实施例还提供一种数据库70,如图7所示,包括:
接收模块71,接收至少一组待存储用户数据,其中,每组所述待存储用户数据包括具有目标属性的至少一个用户特征;
编码模块72,对所述至少一组待存储用户数据中的每种待存储用户特征执行编码,以得到与每种待存储用户特征分别对应的预设编码值,其中,所述预设编码值为2的指数幂;
第一存储模块73,将每种待存储用户特征和对应的所述预设编码值关联存储为编码表;
生成模块74,根据所述至少一组待存储用户数据生成数据表,所述数据表中包括根据每组所述待存储用户数据分别生成的数据行,所述数据行中包括至少一项用户数据值,所述用户数据值为与所述数据行对应的待存储用户数据中具有目标属性的各个待存储用户特征的预设编码值之和;
第二存储模块75,关联存储所述编码表和所述数据表。
通过本实施例提供的数据库,能对待存储用户数据进行编码存储,降低用户数据占用的存储空间,编码后的用户数据能有效提高数据查询效率。
为了解决现有技术中存在的问题,本申请实施例还提供一种用户数据查询***,如图8所示,包括:
至少一个如上述实施例所述的用户数据查询装置81;
与各个所述用户数据查询装置81通信连接的如上述实施例所述的数据库82。
通过本申请实施例提供的***,能够通过用户数据查询装置高效便捷地查询数据库中的用户数据,有效缩短查询耗时。数据库能降低用户数据占用的存储空间,便于用户数据查询装置高效查询所需的数据。
优选的,本发明实施例还提供一种电子设备,包括处理器,存储器,存储在存储器上并可在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述一种用户数据查询方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述一种用户数据查询方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random AccessMemory,简称RAM)、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
Claims (6)
1.一种用户数据查询方法,其特征在于,包括:
接收包含目标用户特征的用户数据查询指令,所述用户数据查询指令用于查询数据库中与所述目标用户特征关联的用户数据;
获取与所述目标用户特征对应的预设编码值,其中,任一预设编码值对应于唯一用户特征,所述预设编码值为2的指数幂;
将数据库中与所述目标用户特征对应的数据列中的各项用户数据值与所述目标用户特征对应的预设编码值执行位与运算,以得到第一位与运算结果,所述用户数据值为所在数据行关联的用户特征的预设编码值之和;
根据所述第一位与运算结果为正数的用户数据值所在的数据行确定所述查询指令的查询结果;
其中,所述用户数据查询指令还包括用户屏蔽特征,所述用户数据查询指令用于查询数据库中与所述目标用户特征关联且与所述用户屏蔽特征不关联的数据,其中,在根据所述第一位与运算结果为正数的用户数据值所在的数据行确定所述查询指令的查询结果之前,还包括:
获取与所述用户屏蔽特征对应的预设编码值;
将数据库中与所述用户屏蔽特征对应的数据列中的各项用户数据值与所述用户屏蔽特征对应的预设编码值执行位与运算,以得到第二位与运算结果;
其中,根据所述第一位与运算结果为正数的用户数据值所在的数据行确定所述查询指令的查询结果,包括:
生成第一数据集合和第二数据集合,所述第一数据集合包括所述第一位与运算结果为正数的用户数据值所在的数据行,所述第二数据集合包括所述第二位与运算结果为正数的用户数据值所在的数据行;
将所述第二数据集合在所述第一数据集合中的相对补集确定为所述查询指令的查询结果。
2.如权利要求1所述的方法,其特征在于,所述用户数据查询指令还包括用户附加特征,所述用户数据查询指令用于查询数据库中与所述目标用户特征和所述用户附加特征关联的数据,其中,在根据所述第一位与运算结果为正数的用户数据值所在的数据行确定所述查询指令的查询结果之前,还包括:
获取与所述用户附加特征对应的预设编码值;
将数据库中与所述用户附加特征对应的数据列中的各项用户数据值与所述用户附加特征对应的预设编码值执行位与运算,以得到第三位与运算结果;
其中,根据所述第一位与运算结果为正数的用户数据值所在的数据行确定所述查询指令的查询结果,包括:
生成第一数据集合和第三数据集合,所述第一数据集合包括所述第一位与运算结果为正数的用户数据值所在的数据行,所述第三数据集合包括所述第三位与运算结果为正数的用户数据值所在的数据行;
将所述第一数据集合与所述第三数据集合的交集确定为所述查询指令的查询结果。
3.如权利要求1或2所述的方法,其特征在于,获取与所述目标用户特征对应的预设编码值,包括:
确定与所述目标用户特征对应的目标编码表,所述目标编码表包括所述数据库中数据列中包含的用户数据值对应的用户特征;
根据所述目标编码表确定与所述目标用户特征对应的预设编码值。
4.一种用户数据查询装置,用于执行权利要求1所述的查询方法,其特征在于,包括:
查询模块,接收包含目标用户特征的用户数据查询指令,所述用户数据查询指令用于查询数据库中与所述目标用户特征关联的用户数据;
获取模块,获取与所述目标用户特征对应的预设编码值,其中,任一预设编码值对应于唯一用户特征,所述预设编码值为2的指数幂;
执行模块,将数据库中与所述目标用户特征对应的数据列中的各项用户数据值与所述目标用户特征对应的预设编码值执行位与运算,以得到第一位与运算结果,所述用户数据值为所在数据行关联的用户特征的预设编码值之和;
确定模块,根据所述第一位与运算结果为正数的用户数据值所在的数据行确定所述查询指令的查询结果。
5.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至3中任一项所述的方法的步骤。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至3中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011211380.5A CN112182021B (zh) | 2020-11-03 | 2020-11-03 | 一种用户数据查询方法、装置和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011211380.5A CN112182021B (zh) | 2020-11-03 | 2020-11-03 | 一种用户数据查询方法、装置和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112182021A CN112182021A (zh) | 2021-01-05 |
CN112182021B true CN112182021B (zh) | 2022-10-18 |
Family
ID=73916471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011211380.5A Active CN112182021B (zh) | 2020-11-03 | 2020-11-03 | 一种用户数据查询方法、装置和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112182021B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113407537B (zh) * | 2021-06-15 | 2024-02-06 | 维沃移动通信有限公司 | 数据处理方法、装置及电子设备 |
CN115658728B (zh) * | 2022-11-16 | 2023-06-13 | 荣耀终端有限公司 | 一种查询方法、电子设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9858628B2 (en) * | 2015-03-11 | 2018-01-02 | HomeAway.com, Inc. | Systems and computer-implemented methods to compare and identify duplicative presentations of comparable data files including imagery and data representations of rental property listings |
CN108536705B (zh) * | 2017-03-02 | 2021-10-01 | 华为技术有限公司 | 数据库***中对象的编码及运算方法与数据库服务器 |
EP3376407B1 (en) * | 2017-03-15 | 2020-09-16 | censhare AG | Efficient use of trie data structure in databases |
CN110175170B (zh) * | 2019-04-19 | 2023-11-21 | 平安科技(深圳)有限公司 | 数据优化处理方法、装置、计算机设备及存储介质 |
CN111782686A (zh) * | 2020-05-13 | 2020-10-16 | 北京三快在线科技有限公司 | 用户数据的查询方法、装置、电子设备及存储介质 |
-
2020
- 2020-11-03 CN CN202011211380.5A patent/CN112182021B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112182021A (zh) | 2021-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109783555B (zh) | 表单模板存储方法、装置、存储介质及电子设备 | |
CN110633292B (zh) | 一种异构数据库的查询方法、装置、介质、设备及*** | |
CN112182021B (zh) | 一种用户数据查询方法、装置和*** | |
CN104268157A (zh) | 一种数据搜索中的纠错装置及其方法 | |
CN111629081A (zh) | 互联网协议ip地址数据处理方法、装置及电子设备 | |
CN112118010A (zh) | 一种字符串的压缩处理方法、装置和存储介质 | |
CN107832391B (zh) | 一种数据查询方法和*** | |
CN112765163A (zh) | 一种可任意扩展维度的数据指标存储方法、***及装置 | |
CN111708831A (zh) | 全局主键生成方法、装置 | |
CN105302915A (zh) | 基于内存计算的高性能数据处理*** | |
CN113763034A (zh) | 广告数据的处理方法及装置 | |
CN111310076B (zh) | 地理位置查询方法、装置、介质及电子设备 | |
CN110266834B (zh) | 基于互联网协议地址的地区查找方法及装置 | |
CN114398883B (zh) | 演示文稿生成方法、装置、计算机可读存储介质及服务器 | |
CN112541834B (zh) | 水电工业数字对象的标识符处理方法、装置和*** | |
CN111538730B (zh) | 一种基于哈希桶算法的数据统计的方法及其*** | |
CN110825747B (zh) | 一种信息存取方法、装置和介质 | |
CN112015922B (zh) | 多媒体文件的检索方法、装置、设备及存储介质 | |
CN113076330A (zh) | 查询处理方法、装置、数据库***、电子设备及存储介质 | |
CN105468603A (zh) | 数据选择方法及装置 | |
CN114490095B (zh) | 请求结果的确定方法和装置、存储介质及电子装置 | |
CN111339093B (zh) | 用户行为数据的获取方法、装置、设备及存储介质 | |
CN115658730B (zh) | 稀疏数据的查询方法、装置、设备和计算机可读存储介质 | |
CN118193518A (zh) | 数据存储方法、数据查询方法、装置和电子设备 | |
CN118052208A (zh) | 报表生成方法、计算机可读存储介质、电子设备及芯片 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |