CN112445822A - 数据查询方法、装置、电子设备及计算机可读存储介质 - Google Patents
数据查询方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN112445822A CN112445822A CN201910818335.7A CN201910818335A CN112445822A CN 112445822 A CN112445822 A CN 112445822A CN 201910818335 A CN201910818335 A CN 201910818335A CN 112445822 A CN112445822 A CN 112445822A
- Authority
- CN
- China
- Prior art keywords
- information
- data
- query
- identification information
- sub
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000013500 data storage Methods 0.000 claims abstract description 110
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 abstract description 5
- 230000008569 process Effects 0.000 description 16
- 238000004364 calculation method Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 238000004590 computer program Methods 0.000 description 6
- 238000000638 solvent extraction Methods 0.000 description 6
- 239000002699 waste material Substances 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002035 prolonged effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
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/245—Query processing
- G06F16/2455—Query execution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开实施例公开了一种数据查询方法、装置、电子设备及计算机可读存储介质,所述数据查询方法包括:响应于接收到数据查询请求,获取数据查询全局唯一标识信息,其中,所述数据查询请求携带有所述数据查询全局唯一标识信息;根据所述数据查询全局唯一标识信息确定目标查询数据存储位置信息,其中,所述目标查询数据存储位置信息包括两个或多个目标查询数据存储位置子信息;根据所述目标查询数据存储位置信息获取目标查询数据。该技术方案能够嵌入两个甚至多个维度的分库分表信息,从而实现通过两个或多个不同维度查询数据的技术效果,进而提高数据查询的准确性和全面性。
Description
技术领域
本公开涉及数据查询技术领域,具体涉及一种数据查询方法、装置、电子设备及计算机可读存储介质。
背景技术
随着大数据业务的迅速发展,数据库中存储的数据量呈现指数增长趋势,数据库和数据表中的数据量会越来越多,随之带来的是更高的磁盘、IO、***开销,甚至数据存储和读取性能上的瓶颈,为了更好的提供数据服务,需要对数据库和数据表进行拆分,即按照一定的规则,把原本存储于一个数据库中的数据分块存储到多个数据库中,把原本存储于一个数据表中的数据分块存储到多个数据表中。现有技术中,通常借助中间件来生成具有64位长度的长整型全局唯一ID,具体的生成方法有以下几种:1,通过嵌入机器信息、时间戳或进程号作为唯一标识,来生成全局唯一ID;2,通过嵌入长时间戳及短分库分表信息来生成全局唯一ID,比如全局唯一ID:156030975800089中,前面为长时间戳信息,后面2位数字89为短分库分表信息,这样通过对该全局唯一ID进行100取模即可得到该数据是在第89个分表里。上述全局唯一ID生成方法对于短分库分表信息是有效的,但是当分库分表信息较长时,由于还需要添加时间戳、数据库自增ID等信息,上述方法就无法凑效了。
发明内容
本公开实施例提供一种数据查询方法、装置、电子设备及计算机可读存储介质。
第一方面,本公开实施例中提供了一种数据查询方法。
具体的,所述数据查询方法,包括:
响应于接收到数据查询请求,获取数据查询全局唯一标识信息,其中,所述数据查询请求携带有所述数据查询全局唯一标识信息;
根据所述数据查询全局唯一标识信息确定目标查询数据存储位置信息,其中,所述目标查询数据存储位置信息包括两个或多个目标查询数据存储位置子信息;
根据所述目标查询数据存储位置信息获取目标查询数据。
结合第一方面,本公开在第一方面的第一种实现方式中,所述数据查询全局唯一标识信息包括顺序排列的预设固定信息、数据库自增标识信息、第一目标查询数据存储位置子信息和第二目标查询数据存储位置子信息,其中,所述第一目标查询数据存储位置子信息具有第一预设长度,所述第二目标查询数据存储位置子信息具有第二预设长度,所述预设固定信息具有第三预设长度,所述数据库自增标识信息具有第四预设长度。
结合第一方面和第一方面的第一种实现方式,本发明实施例在第一方面的第二种实现方式中,所述预设固定信息为预设符号信息。
结合第一方面、第一方面的第一种实现方式和第一方面的第二种实现方式,本发明实施例在第一方面的第三种实现方式中,当所述数据查询全局唯一标识信息为十进制数值时,所述根据所述数据查询全局唯一标识信息确定目标查询数据存储位置信息,包括:
将所述数据查询全局唯一标识信息转换为二进制数值;
根据所述数据查询全局唯一标识信息确定目标查询数据存储位置信息。
结合第一方面、第一方面的第一种实现方式、第一方面的第二种实现方式和第一方面的第三种实现方式,本发明实施例在第一方面的第四种实现方式中,当所述数据查询全局唯一标识信息为二进制数值时,所述根据所述数据查询全局唯一标识信息确定目标查询数据存储位置信息,被实施为:
通过移动和逻辑运算从所述数据查询全局唯一标识信息中取出所述第一目标查询数据存储位置子信息和第二目标查询数据存储位置子信息。
结合第一方面、第一方面的第一种实现方式、第一方面的第二种实现方式、第一方面的第三种实现方式和第一方面的第四种实现方式,本发明实施例在第一方面的第五种实现方式中,所述通过移动和逻辑运算从所述数据查询全局唯一标识信息中取出所述第一目标查询数据存储位置子信息和第二目标查询数据存储位置子信息,被实施为:
将所述数据查询全局唯一标识信息与所述第二预设长度对应的二进制值进行逻辑与计算,得到所述第二目标查询数据存储位置子信息;
将所述第一预设长度对应的二进制值左移第二预设长度后与所述数据查询全局唯一标识信息进行逻辑与计算,再将计算结果右移第二预设长度。
第二方面,本公开实施例中提供了一种数据查询装置。
具体的,所述数据查询装置,包括:
第一获取模块,被配置为响应于接收到数据查询请求,获取数据查询全局唯一标识信息,其中,所述数据查询请求携带有所述数据查询全局唯一标识信息;
确定模块,被配置为根据所述数据查询全局唯一标识信息确定目标查询数据存储位置信息,其中,所述目标查询数据存储位置信息包括两个或多个目标查询数据存储位置子信息;
第二获取模块,被配置为根据所述目标查询数据存储位置信息获取目标查询数据。
结合第二方面,本公开在第二方面的第一种实现方式中,所述数据查询全局唯一标识信息包括顺序排列的预设固定信息、数据库自增标识信息、第一目标查询数据存储位置子信息和第二目标查询数据存储位置子信息,其中,所述第一目标查询数据存储位置子信息具有第一预设长度,所述第二目标查询数据存储位置子信息具有第二预设长度,所述预设固定信息具有第三预设长度,所述数据库自增标识信息具有第四预设长度。
结合第二方面和第二方面的第一种实现方式,本发明实施例在第二方面的第二种实现方式中,所述预设固定信息为预设符号信息。
结合第二方面、第二方面的第一种实现方式和第二方面的第二种实现方式,本发明实施例在第二方面的第三种实现方式中,当所述数据查询全局唯一标识信息为十进制数值时,所述确定模块包括:
转换子模块,被配置为将所述数据查询全局唯一标识信息转换为二进制数值;
确定子模块,被配置为根据所述数据查询全局唯一标识信息确定目标查询数据存储位置信息。
结合第二方面、第二方面的第一种实现方式、第二方面的第二种实现方式和第二方面的第三种实现方式,本发明实施例在第二方面的第四种实现方式中,当所述数据查询全局唯一标识信息为二进制数值时,所述确定模块或所述确定子模块被配置为:
通过移动和逻辑运算从所述数据查询全局唯一标识信息中取出所述第一目标查询数据存储位置子信息和第二目标查询数据存储位置子信息。
结合第二方面、第二方面的第一种实现方式、第二方面的第二种实现方式、第二方面的第三种实现方式和第二方面的第四种实现方式,本发明实施例在第二方面的第五种实现方式中,所述确定模块被配置为:
将所述数据查询全局唯一标识信息与所述第二预设长度对应的二进制值进行逻辑与计算,得到所述第二目标查询数据存储位置子信息;
将所述第一预设长度对应的二进制值左移第二预设长度后与所述数据查询全局唯一标识信息进行逻辑与计算,再将计算结果右移第二预设长度。
第三方面,本公开实施例提供了一种电子设备,包括存储器和处理器,其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现上述第一方面中数据查询方法的方法步骤。
第四方面,本公开实施例提供了一种计算机可读存储介质,用于存储数据查询装置所用的计算机指令,其包含用于执行上述第一方面中数据查询方法为数据查询装置所涉及的计算机指令。
本公开实施例提供的技术方案可以包括以下有益效果:
上述技术方案通过使用数据库自增标识信息来代替现有技术中的时间戳、机器信息或进程号等信息,来使全局唯一ID嵌入两个维度甚至多个维度的分库分表信息成为可能。上述技术方案能够嵌入两个甚至多个维度的分库分表信息,从而实现通过两个或多个不同维度查询数据的技术效果,进而提高数据查询的准确性和全面性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
结合附图,通过以下非限制性实施方式的详细描述,本公开的其它特征、目的和优点将变得更加明显。在附图中:
图1示出根据本公开一实施方式的数据查询方法的流程图;
图2示出根据本公开一实施方式的数据查询全局唯一标识信息结构组成示意图;
图3示出根据图1所示实施方式的数据查询方法的步骤S102的流程图;
图4示出根据本公开一实施方式的数据查询装置的结构框图;
图5示出根据图4所示实施方式的数据查询装置的确定模块402的结构框图;
图6示出根据本公开一实施方式的电子设备的结构框图;
图7是适于用来实现根据本公开一实施方式的数据查询方法的计算机***的结构示意图。
具体实施方式
下文中,将参考附图详细描述本公开的示例性实施方式,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施方式无关的部分。
在本公开中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
本公开实施例提供的技术方案通过使用数据库自增标识信息来代替现有技术中的时间戳、机器信息或进程号等信息,来使全局唯一ID嵌入两个维度甚至多个维度的分库分表信息成为可能。上述技术方案能够嵌入两个甚至多个维度的分库分表信息,从而实现通过两个或多个不同维度查询数据的技术效果,进而提高数据查询的准确性和全面性。
图1示出根据本公开一实施方式的数据查询方法的流程图,如图1所示,所述数据查询方法包括以下步骤S101-S103:
在步骤S101中,响应于接收到数据查询请求,获取数据查询全局唯一标识信息,其中,所述数据查询请求携带有所述数据查询全局唯一标识信息;
在步骤S102中,根据所述数据查询全局唯一标识信息确定目标查询数据存储位置信息,其中,所述目标查询数据存储位置信息包括两个或多个目标查询数据存储位置子信息;
在步骤S103中,根据所述目标查询数据存储位置信息获取目标查询数据。
上文提及,随着大数据业务的迅速发展,数据库中存储的数据量呈现指数增长趋势,数据库和数据表中的数据量会越来越多,随之带来的是更高的磁盘、IO、***开销,甚至数据存储和读取性能上的瓶颈,为了更好的提供数据服务,需要对数据库和数据表进行拆分,即按照一定的规则,把原本存储于一个数据库中的数据分块存储到多个数据库中,把原本存储于一个数据表中的数据分块存储到多个数据表中。现有技术中,通常借助中间件来生成具有64位长度的长整型全局唯一ID,具体的生成方法有以下几种:1,通过嵌入机器信息、时间戳或进程号作为唯一标识,来生成全局唯一ID;2,通过嵌入长时间戳及短分库分表信息来生成全局唯一ID,比如全局唯一ID:156030975800089中,前面为长时间戳信息,后面2位数字89为短分库分表信息,这样通过对该全局唯一ID进行100取模即可得到该数据是在第89个分表里。上述全局唯一ID生成方法对于短分库分表信息是有效的,但是当分库分表信息较长时,由于还需要添加时间戳、数据库自增ID等信息,上述方法就无法凑效了。
比如,某些互联网平台需要记录和存储订单数据,订单数据既包括商户信息也包括用户信息,也就是说,某一订单数据既会存储在商户数据中,也会存储在用户数据中,如若想要提高数据查询的准确性和全面性,使全局唯一ID中既能够体现商户数据的存储位置,又能体现用户数据的存储位置,通过所述全局唯一ID既能查到某一订单所在的商户存在在第几个商户分表里,也能查到该订单所在的用户存在在第几个用户分表里,就需要将商户数据的分库分表信息和用户数据的分库分表信息均嵌入至全局唯一ID中。但由于通常一个分库分表信息需要10个比特,两个分库分表信息就需要20个比特,这样64位的长整型全局唯一ID就只剩下44个比特位可用于分配给时间戳、机器信息或进程号,很显然,基于现有技术的方案,上述两个维度分库分表信息的嵌入是无法实现的。
考虑到上述缺陷,在该实施方式中,提出一种数据查询方法,该方法通过使用数据库自增标识信息来代替现有技术中的时间戳、机器信息或进程号等信息,来使全局唯一ID嵌入两个维度甚至多个维度的分库分表信息成为可能。上述技术方案能够嵌入两个甚至多个维度的分库分表信息,从而实现通过两个或多个不同维度查询数据的技术效果,进而提高数据查询的准确性和全面性。
在本实施例的一个可选实现方式中,所述数据查询全局唯一标识信息,即全局唯一ID,指的是在拥有多个节点、多台计算机的网络或***中具有全局唯一性的、用于标识注册表项、类及接口标识、数据库、***目录等对象的、能够对于某一操作或者某一数据进行唯一标识的信息。
在本实施例的一个可选实现方式中,所述数据查询请求携带有所述数据查询全局唯一标识信息。当数据查询方发来携带有所述数据查询全局唯一标识信息的数据查询请求后,就可根据所述数据查询全局唯一标识信息对于目标查询数据执行查询操作。
在本实施例的一个可选实现方式中,所述目标查询数据存储位置信息包括两个或多个目标查询数据存储位置子信息,或者说,所述目标查询数据存储位置信息中包括两个或多个维度的分库分表信息。通过上述两个或多个维度的分库分表信息,不仅可以确定目标查询数据的存储情况,还可以通过两个或多个不同的维度来进行数据的查询,进而提高数据查询的准确性和全面性。
在本实施例的一个可选实现方式中,在获取目标查询数据存储位置信息之后,就可以借助常用数据查询语句,根据所述目标查询数据存储位置信息来获取目标查询数据。
上文提及,目前常用的全局唯一ID为具有64位长度的长整型字符串,除了一位为符号信息,剩余的63位数据均为机器信息、时间戳或进程号,最多可通过将63位的机器信息、时间戳或进程号缩短为61位,以嵌入两位的分库分表信息。为了实现上述准确确定目标查询数据的存储情况,可通过两个或多个不同的维度来进行数据的查询,提高数据查询的准确性和全面性的目的,在本实施例的一个可选实现方式中,使用长度可控的数据库自增标识信息来代替现有技术中的时间戳、机器信息或进程号等信息,以使嵌入两个维度甚至多个维度的分库分表信息成为可能。即,所述数据查询全局唯一标识信息放弃了对于时间戳信息的使用,其仅包括顺序排列的预设固定信息、数据库自增标识信息和两个或多个目标查询数据存储位置子信息,其中,所述预设固定信息指的是预设符号信息等固定信息。
以两维分库分表信息为例,在本实施例的一个可选实现方式中,所述数据查询全局唯一标识信息包括顺序排列的预设固定信息、数据库自增标识信息、第一目标查询数据存储位置子信息和第二目标查询数据存储位置子信息,其中,所述预设固定信息为符号信息;所述数据库自增标识信息为数据库数据发生变化时产生的变化标识信息,用于保证所述全局唯一ID的唯一性;所述第一目标查询数据存储位置子信息和第二目标查询数据存储位置子信息为两维分库分表信息。其中,所述第一目标查询数据存储位置子信息具有第一预设长度,所述第二目标查询数据存储位置子信息具有第二预设长度,所述预设固定信息具有第三预设长度,所述数据库自增标识信息具有第四预设长度。
在本实施例的一个可选实现方式中,如图2所示,所述第三预设长度为1比特,第四预设长度为43比特,第一预设长度和第二预设长度均为10比特,即所述预设固定信息的长度为1比特,所述数据库自增标识信息的长度为43比特,所述第一目标查询数据存储位置子信息的长度为10比特,第二目标查询数据存储位置子信息的长度为10比特,将上述信息顺序排列起来,就形成了总长度为64比特的数据查询全局唯一标识信息。
上述使用数据库自增标识信息来代替现有技术中的时间戳、机器信息或进程号等信息,不仅避免了时间戳信息的加入导致的信息位浪费,可增加分库分表信息,还可延长全局唯一ID的使用寿命。具体地,上述现有技术使用的时间戳每过一毫秒数值就加一,也就是说获取当前的一毫秒还都没有实际使用,全局唯一ID就已经开始记录了,所以时间戳的使用会导致占位的浪费,而本公开中的数据库自增标识信息在不使用的情况下不会增加,从而避免了占位的浪费,计算下来43位的数据库自增标识信息在每秒使用10000个的情况下可以使用27年,而节省下来的比特位还可以存放两维或多维的分库分表信息。
在本实施例的一个可选实现方式中,当所述数据查询全局唯一标识信息为十进制数值时,如图3所示,所述步骤S102,即所述根据所述数据查询全局唯一标识信息确定目标查询数据存储位置信息的步骤,包括以下步骤S301-S302:
在步骤S301中,将所述数据查询全局唯一标识信息转换为二进制数值;
在步骤S302中,根据所述数据查询全局唯一标识信息确定目标查询数据存储位置信息。
在该实现方式中,当所述数据查询全局唯一标识信息为十进制数值时,首先将其转换为二进制数值,再来确定目标查询数据存储位置信息。
在本实施例的一个可选实现方式中,当所述数据查询全局唯一标识信息为二进制数值时,所述步骤S102或所述步骤S302,即所述根据所述数据查询全局唯一标识信息确定目标查询数据存储位置信息的步骤,可被实施为:
通过移动和逻辑运算从所述数据查询全局唯一标识信息中取出所述第一目标查询数据存储位置子信息和第二目标查询数据存储位置子信息。
上文提及,所述数据查询全局唯一标识信息中顺序排列有预设固定信息、数据库自增标识信息、第一目标查询数据存储位置子信息和第二目标查询数据存储位置子信息,并且所述数据查询全局唯一标识信息为二进制表示方式,此时就可以通过移动和逻辑运算等操作从所述数据查询全局唯一标识信息中取出所述第一目标查询数据存储位置子信息和第二目标查询数据存储位置子信息。
在本实施例的一个可选实现方式中,所述通过移动和逻辑运算从所述数据查询全局唯一标识信息中取出所述第一目标查询数据存储位置子信息和第二目标查询数据存储位置子信息,可被实施为:
将所述数据查询全局唯一标识信息与所述第二预设长度对应的二进制值进行逻辑与计算,得到所述第二目标查询数据存储位置子信息;
将所述第一预设长度对应的二进制值左移第二预设长度后与所述数据查询全局唯一标识信息进行逻辑与计算,再将计算结果右移第二预设长度。
以上文示例为例,若64比特的数据查询全局唯一标识信息依次包括1比特的预设固定信息,43比特的数据库自增标识信息,10比特的第一目标查询数据存储位置子信息,以及10比特的第二目标查询数据存储位置子信息。从数据查询请求获取得到的全局唯一ID为129453826323900(方便起见,使用十进制来表示),那么通过129453826323900&1023,即可获得第二目标查询数据存储位置子信息为444,即该数据查询全局唯一标识信息所在的第二维度的分库分表信息为444,其中,“&”表示逻辑与计算,1023为第二预设长度对应的二进制值;通过(129453826323900&(1023<<10))>>10,即可获得第一目标查询数据存储位置子信息为333,即该数据查询全局唯一标识信息所在的第一维度的分库分表信息为333,其中,“<<”表示左移操作,“>>”表示右移操作。这样就可以通过两个不同的维度直接到正确的分表里查询到目标行数据。
下述为本公开装置实施例,可以用于执行本公开方法实施例。
图4示出根据本公开一实施方式的数据查询装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图4所示,所述数据查询装置包括:
第一获取模块401,被配置为响应于接收到数据查询请求,获取数据查询全局唯一标识信息,其中,所述数据查询请求携带有所述数据查询全局唯一标识信息;
确定模块402,被配置为根据所述数据查询全局唯一标识信息确定目标查询数据存储位置信息,其中,所述目标查询数据存储位置信息包括两个或多个目标查询数据存储位置子信息;
第二获取模块403,被配置为根据所述目标查询数据存储位置信息获取目标查询数据。
上文提及,随着大数据业务的迅速发展,数据库中存储的数据量呈现指数增长趋势,数据库和数据表中的数据量会越来越多,随之带来的是更高的磁盘、IO、***开销,甚至数据存储和读取性能上的瓶颈,为了更好的提供数据服务,需要对数据库和数据表进行拆分,即按照一定的规则,把原本存储于一个数据库中的数据分块存储到多个数据库中,把原本存储于一个数据表中的数据分块存储到多个数据表中。现有技术中,通常借助中间件来生成具有64位长度的长整型全局唯一ID,具体的生成方法有以下几种:1,通过嵌入机器信息、时间戳或进程号作为唯一标识,来生成全局唯一ID;2,通过嵌入长时间戳及短分库分表信息来生成全局唯一ID,比如全局唯一ID:156030975800089中,前面为长时间戳信息,后面2位数字89为短分库分表信息,这样通过对该全局唯一ID进行100取模即可得到该数据是在第89个分表里。上述全局唯一ID生成方法对于短分库分表信息是有效的,但是当分库分表信息较长时,由于还需要添加时间戳、数据库自增ID等信息,上述方法就无法凑效了。
比如,某些互联网平台需要记录和存储订单数据,订单数据既包括商户信息也包括用户信息,也就是说,某一订单数据既会存储在商户数据中,也会存储在用户数据中,如若想要提高数据查询的准确性和全面性,使全局唯一ID中既能够体现商户数据的存储位置,又能体现用户数据的存储位置,通过所述全局唯一ID既能查到某一订单所在的商户存在在第几个商户分表里,也能查到该订单所在的用户存在在第几个用户分表里,就需要将商户数据的分库分表信息和用户数据的分库分表信息均嵌入至全局唯一ID中。但由于通常一个分库分表信息需要10个比特,两个分库分表信息就需要20个比特,这样64位的长整型全局唯一ID就只剩下44个比特位可用于分配给时间戳、机器信息或进程号,很显然,基于现有技术的方案,上述两个维度分库分表信息的嵌入是无法实现的。
考虑到上述缺陷,在该实施方式中,提出一种数据查询装置,该装置通过使用数据库自增标识信息来代替现有技术中的时间戳、机器信息或进程号等信息,来使全局唯一ID嵌入两个维度甚至多个维度的分库分表信息成为可能。上述技术方案能够嵌入两个甚至多个维度的分库分表信息,从而实现通过两个或多个不同维度查询数据的技术效果,进而提高数据查询的准确性和全面性。
在本实施例的一个可选实现方式中,所述数据查询全局唯一标识信息,即全局唯一ID,指的是在拥有多个节点、多台计算机的网络或***中具有全局唯一性的、用于标识注册表项、类及接口标识、数据库、***目录等对象的、能够对于某一操作或者某一数据进行唯一标识的信息。
在本实施例的一个可选实现方式中,所述数据查询请求携带有所述数据查询全局唯一标识信息。当数据查询方发来携带有所述数据查询全局唯一标识信息的数据查询请求后,就可根据所述数据查询全局唯一标识信息对于目标查询数据执行查询操作。
在本实施例的一个可选实现方式中,所述目标查询数据存储位置信息包括两个或多个目标查询数据存储位置子信息,或者说,所述目标查询数据存储位置信息中包括两个或多个维度的分库分表信息。通过上述两个或多个维度的分库分表信息,不仅可以确定目标查询数据的存储情况,还可以通过两个或多个不同的维度来进行数据的查询,进而提高数据查询的准确性和全面性。
在本实施例的一个可选实现方式中,在获取目标查询数据存储位置信息之后,就可以借助常用数据查询语句,根据所述目标查询数据存储位置信息来获取目标查询数据。
上文提及,目前常用的全局唯一ID为具有64位长度的长整型字符串,除了一位为符号信息,剩余的63位数据均为机器信息、时间戳或进程号,最多可通过将63位的机器信息、时间戳或进程号缩短为61位,以嵌入两位的分库分表信息。为了实现上述准确确定目标查询数据的存储情况,可通过两个或多个不同的维度来进行数据的查询,提高数据查询的准确性和全面性的目的,在本实施例的一个可选实现方式中,使用长度可控的数据库自增标识信息来代替现有技术中的时间戳、机器信息或进程号等信息,以使嵌入两个维度甚至多个维度的分库分表信息成为可能。即,所述数据查询全局唯一标识信息放弃了对于时间戳信息的使用,其仅包括顺序排列的预设固定信息、数据库自增标识信息和两个或多个目标查询数据存储位置子信息,其中,所述预设固定信息指的是预设符号信息等固定信息。
以两维分库分表信息为例,在本实施例的一个可选实现方式中,所述数据查询全局唯一标识信息包括顺序排列的预设固定信息、数据库自增标识信息、第一目标查询数据存储位置子信息和第二目标查询数据存储位置子信息,其中,所述预设固定信息为符号信息;所述数据库自增标识信息为数据库数据发生变化时产生的变化标识信息,用于保证所述全局唯一ID的唯一性;所述第一目标查询数据存储位置子信息和第二目标查询数据存储位置子信息为两维分库分表信息。其中,所述第一目标查询数据存储位置子信息具有第一预设长度,所述第二目标查询数据存储位置子信息具有第二预设长度,所述预设固定信息具有第三预设长度,所述数据库自增标识信息具有第四预设长度。
在本实施例的一个可选实现方式中,如图2所示,所述第三预设长度为1比特,第四预设长度为43比特,第一预设长度和第二预设长度均为10比特,即所述预设固定信息的长度为1比特,所述数据库自增标识信息的长度为43比特,所述第一目标查询数据存储位置子信息的长度为10比特,第二目标查询数据存储位置子信息的长度为10比特,将上述信息顺序排列起来,就形成了总长度为64比特的数据查询全局唯一标识信息。
上述使用数据库自增标识信息来代替现有技术中的时间戳、机器信息或进程号等信息,不仅避免了时间戳信息的加入导致的信息位浪费,可增加分库分表信息,还可延长全局唯一ID的使用寿命。具体地,上述现有技术使用的时间戳每过一毫秒数值就加一,也就是说获取当前的一毫秒还都没有实际使用,全局唯一ID就已经开始记录了,所以时间戳的使用会导致占位的浪费,而本公开中的数据库自增标识信息在不使用的情况下不会增加,从而避免了占位的浪费,计算下来43位的数据库自增标识信息在每秒使用10000个的情况下可以使用27年,而节省下来的比特位还可以存放两维或多维的分库分表信息。
在本实施例的一个可选实现方式中,当所述数据查询全局唯一标识信息为十进制数值时,如图5所示,所述确定模块402包括:
转换子模块501,被配置为将所述数据查询全局唯一标识信息转换为二进制数值;
确定子模块502,被配置为根据所述数据查询全局唯一标识信息确定目标查询数据存储位置信息。
在该实现方式中,当所述数据查询全局唯一标识信息为十进制数值时,首先将其转换为二进制数值,再来确定目标查询数据存储位置信息。
在本实施例的一个可选实现方式中,当所述数据查询全局唯一标识信息为二进制数值时,所述确定模块402或所述确定子模块502可被配置为:
通过移动和逻辑运算从所述数据查询全局唯一标识信息中取出所述第一目标查询数据存储位置子信息和第二目标查询数据存储位置子信息。
上文提及,所述数据查询全局唯一标识信息中顺序排列有预设固定信息、数据库自增标识信息、第一目标查询数据存储位置子信息和第二目标查询数据存储位置子信息,并且所述数据查询全局唯一标识信息为二进制表示方式,此时就可以通过移动和逻辑运算等操作从所述数据查询全局唯一标识信息中取出所述第一目标查询数据存储位置子信息和第二目标查询数据存储位置子信息。
在本实施例的一个可选实现方式中,所述通过移动和逻辑运算从所述数据查询全局唯一标识信息中取出所述第一目标查询数据存储位置子信息和第二目标查询数据存储位置子信息,可被实施为:
将所述数据查询全局唯一标识信息与所述第二预设长度对应的二进制值进行逻辑与计算,得到所述第二目标查询数据存储位置子信息;
将所述第一预设长度对应的二进制值左移第二预设长度后与所述数据查询全局唯一标识信息进行逻辑与计算,再将计算结果右移第二预设长度。
以上文示例为例,若64比特的数据查询全局唯一标识信息依次包括1比特的预设固定信息,43比特的数据库自增标识信息,10比特的第一目标查询数据存储位置子信息,以及10比特的第二目标查询数据存储位置子信息。从数据查询请求获取得到的全局唯一ID为129453826323900(方便起见,使用十进制来表示),那么通过129453826323900&1023,即可获得第二目标查询数据存储位置子信息为444,即该数据查询全局唯一标识信息所在的第二维度的分库分表信息为444,其中,“&”表示逻辑与计算,1023为第二预设长度对应的二进制值;通过(129453826323900&(1023<<10))>>10,即可获得第一目标查询数据存储位置子信息为333,即该数据查询全局唯一标识信息所在的第一维度的分库分表信息为333,其中,“<<”表示左移操作,“>>”表示右移操作。这样就可以通过两个不同的维度直接到正确的分表里查询到目标行数据。
本公开还公开了一种电子设备,图6示出根据本公开一实施方式的电子设备的结构框图,如图6所示,所述电子设备600包括存储器601和处理器602;其中,
所述存储器601用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器602执行以实现上述方法步骤。
图7适于用来实现根据本公开实施方式的数据查询方法的计算机***的结构示意图。
如图7所示,计算机***700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行上述实施方式中的各种处理。在RAM703中,还存储有***700操作所需的各种程序和数据。CPU701、ROM702以及RAM703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
特别地,根据本公开的实施方式,上文描述的方法可以被实现为计算机软件程序。例如,本公开的实施方式包括一种计算机程序产品,其包括有形地包含在及其可读介质上的计算机程序,所述计算机程序包含用于执行上述数据查询方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。
附图中的流程图和框图,图示了按照本公开各种实施方式的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开的方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (10)
1.一种数据查询方法,其特征在于,包括:
响应于接收到数据查询请求,获取数据查询全局唯一标识信息,其中,所述数据查询请求携带有所述数据查询全局唯一标识信息;
根据所述数据查询全局唯一标识信息确定目标查询数据存储位置信息,其中,所述目标查询数据存储位置信息包括两个或多个目标查询数据存储位置子信息;
根据所述目标查询数据存储位置信息获取目标查询数据。
2.根据权利要求1所述的方法,其特征在于,所述数据查询全局唯一标识信息包括顺序排列的预设固定信息、数据库自增标识信息、第一目标查询数据存储位置子信息和第二目标查询数据存储位置子信息,其中,所述第一目标查询数据存储位置子信息具有第一预设长度,所述第二目标查询数据存储位置子信息具有第二预设长度,所述预设固定信息具有第三预设长度,所述数据库自增标识信息具有第四预设长度。
3.根据权利要求2所述的方法,其特征在于,所述预设固定信息为预设符号信息。
4.根据权利要求2或3所述的方法,其特征在于,当所述数据查询全局唯一标识信息为十进制数值时,所述根据所述数据查询全局唯一标识信息确定目标查询数据存储位置信息,包括:
将所述数据查询全局唯一标识信息转换为二进制数值;
根据所述数据查询全局唯一标识信息确定目标查询数据存储位置信息。
5.一种数据查询装置,其特征在于,包括:
第一获取模块,被配置为响应于接收到数据查询请求,获取数据查询全局唯一标识信息,其中,所述数据查询请求携带有所述数据查询全局唯一标识信息;
确定模块,被配置为根据所述数据查询全局唯一标识信息确定目标查询数据存储位置信息,其中,所述目标查询数据存储位置信息包括两个或多个目标查询数据存储位置子信息;
第二获取模块,被配置为根据所述目标查询数据存储位置信息获取目标查询数据。
6.根据权利要求5所述的装置,其特征在于,所述数据查询全局唯一标识信息包括顺序排列的预设固定信息、数据库自增标识信息、第一目标查询数据存储位置子信息和第二目标查询数据存储位置子信息,其中,所述第一目标查询数据存储位置子信息具有第一预设长度,所述第二目标查询数据存储位置子信息具有第二预设长度,所述预设固定信息具有第三预设长度,所述数据库自增标识信息具有第四预设长度。
7.根据权利要求6所述的装置,其特征在于,所述预设固定信息为预设符号信息。
8.根据权利要求6或7所述的装置,其特征在于,当所述数据查询全局唯一标识信息为十进制数值时,所述确定模块包括:
转换子模块,被配置为将所述数据查询全局唯一标识信息转换为二进制数值;
确定子模块,被配置为根据所述数据查询全局唯一标识信息确定目标查询数据存储位置信息。
9.一种电子设备,其特征在于,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现权利要求1-4任一项所述的方法步骤。
10.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该计算机指令被处理器执行时实现权利要求1-4任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910818335.7A CN112445822B (zh) | 2019-08-30 | 2019-08-30 | 数据查询方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910818335.7A CN112445822B (zh) | 2019-08-30 | 2019-08-30 | 数据查询方法、装置、电子设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112445822A true CN112445822A (zh) | 2021-03-05 |
CN112445822B CN112445822B (zh) | 2022-09-16 |
Family
ID=74735283
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910818335.7A Active CN112445822B (zh) | 2019-08-30 | 2019-08-30 | 数据查询方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112445822B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761251A (zh) * | 2013-12-26 | 2014-04-30 | 无锡冠云信息科技有限公司 | 大数据量客户信息的存储与查找方法 |
CN105447023A (zh) * | 2014-08-25 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 业务标识生成方法和装置 |
CN107153653A (zh) * | 2016-03-03 | 2017-09-12 | 阿里巴巴集团控股有限公司 | 一种分库分表的轮询访问方法及装置 |
CN107622079A (zh) * | 2017-07-28 | 2018-01-23 | 阿里巴巴集团控股有限公司 | 数据存储、查询方法及装置 |
CN107729402A (zh) * | 2017-09-22 | 2018-02-23 | 努比亚技术有限公司 | 一种分表方法、装置及计算机可读存储介质 |
CN107818115A (zh) * | 2016-09-14 | 2018-03-20 | 苏宁云商集团股份有限公司 | 一种处理数据表的方法及装置 |
CN109104490A (zh) * | 2018-08-29 | 2018-12-28 | 北京达佳互联信息技术有限公司 | 业务标识管理方法、装置、电子设备及存储介质 |
WO2019055282A1 (en) * | 2017-09-14 | 2019-03-21 | Savizar, Inc. | DATABASE ENGINE |
CN109710618A (zh) * | 2018-12-29 | 2019-05-03 | 北京航天云路有限公司 | 知识图谱数据关系分离的混合存储方法及*** |
CN109740120A (zh) * | 2018-12-14 | 2019-05-10 | 深圳壹账通智能科技有限公司 | 分布式环境下唯一标识的生成方法、装置、计算机设备 |
-
2019
- 2019-08-30 CN CN201910818335.7A patent/CN112445822B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761251A (zh) * | 2013-12-26 | 2014-04-30 | 无锡冠云信息科技有限公司 | 大数据量客户信息的存储与查找方法 |
CN105447023A (zh) * | 2014-08-25 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 业务标识生成方法和装置 |
CN107153653A (zh) * | 2016-03-03 | 2017-09-12 | 阿里巴巴集团控股有限公司 | 一种分库分表的轮询访问方法及装置 |
CN107818115A (zh) * | 2016-09-14 | 2018-03-20 | 苏宁云商集团股份有限公司 | 一种处理数据表的方法及装置 |
CN107622079A (zh) * | 2017-07-28 | 2018-01-23 | 阿里巴巴集团控股有限公司 | 数据存储、查询方法及装置 |
WO2019055282A1 (en) * | 2017-09-14 | 2019-03-21 | Savizar, Inc. | DATABASE ENGINE |
CN107729402A (zh) * | 2017-09-22 | 2018-02-23 | 努比亚技术有限公司 | 一种分表方法、装置及计算机可读存储介质 |
CN109104490A (zh) * | 2018-08-29 | 2018-12-28 | 北京达佳互联信息技术有限公司 | 业务标识管理方法、装置、电子设备及存储介质 |
CN109740120A (zh) * | 2018-12-14 | 2019-05-10 | 深圳壹账通智能科技有限公司 | 分布式环境下唯一标识的生成方法、装置、计算机设备 |
CN109710618A (zh) * | 2018-12-29 | 2019-05-03 | 北京航天云路有限公司 | 知识图谱数据关系分离的混合存储方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN112445822B (zh) | 2022-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110851209B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN108733317B (zh) | 数据存储方法和装置 | |
WO2013097546A1 (en) | Assisting query and querying | |
CN106407360B (zh) | 一种数据的处理方法及装置 | |
US10296497B2 (en) | Storing a key value to a deleted row based on key range density | |
CN110442642B (zh) | 分布式数据库的数据处理方法、装置和存储介质 | |
CN112182036A (zh) | 数据的发送与写入方法、装置、电子设备及可读存储介质 | |
CN113157731A (zh) | 符号解析方法、装置、设备及存储介质 | |
CN108763524B (zh) | 电子装置、聊天数据处理方法和计算机可读存储介质 | |
CN112445822B (zh) | 数据查询方法、装置、电子设备及计算机可读存储介质 | |
CN110069489B (zh) | 一种信息处理方法、装置、设备及计算机可读存储介质 | |
CN103051480B (zh) | 一种dn的存储方法及dn存储装置 | |
CN112162951A (zh) | 一种信息检索方法、服务器及存储介质 | |
CN110598068A (zh) | 全局标识生成方法和装置 | |
CN111666278A (zh) | 数据存储、检索方法、电子设备及存储介质 | |
US9619443B2 (en) | Enhanced messaging transaction performance with auto-selected dual-tag fields | |
CN116226222B (zh) | 基于时序数据库的数据段标记处理方法及装置 | |
CN111506756A (zh) | 相似图片的查找方法及***、电子设备、存储介质 | |
CN111159199A (zh) | 一种指标数据获取方法及装置 | |
CN110851456B (zh) | 一种信息处理方法、电子设备及存储介质 | |
CN114153830B (zh) | 数据验证方法及其装置、计算机存储介质、电子设备 | |
CN112181995B (zh) | 数据表的数据处理方法、装置、设备及存储介质 | |
CN116881360A (zh) | 一种解决基于雪花算法时钟回拨问题的方法、***、终端设备及存储介质 | |
CN114153867A (zh) | 数据分组方法、装置、电子设备和存储介质 | |
CN113961576A (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 |