CN108875003A - 一种数据定位方法及装置 - Google Patents
一种数据定位方法及装置 Download PDFInfo
- Publication number
- CN108875003A CN108875003A CN201810615562.5A CN201810615562A CN108875003A CN 108875003 A CN108875003 A CN 108875003A CN 201810615562 A CN201810615562 A CN 201810615562A CN 108875003 A CN108875003 A CN 108875003A
- Authority
- CN
- China
- Prior art keywords
- data
- emid
- database
- library
- mailbox
- 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.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种数据定位方法及装置,该方法包括:接收邮箱数据;对所述邮箱数据进行哈希计算,得到16进制的哈希值;将16进制的哈希值进行10进制的INT型转换,得到与所述邮箱数据对应的邮箱标识码(EMID);查询分库分表数据库中是否已存在所述EMID;如果已存在所述EMID,则根据所述EMID,从分库分表数据库中,确定所述EMID所在的分库和分表,以定位所述邮箱数据所在的存储位置。基于上述方法和装置,能够精确定位数据所在的库与表,避免对数据库全库表扫描,很大程度低地提高了程序执行效率,提升了系统处理数据的能力,同时还降低了数据库的开销,耗时也减少。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种数据定位方法及装置
背景技术
在大数据背景前提下,邮箱数据量超过千万级的数据库都需要进行相关的分库分表处理。对于千万级数据,在实际应用过程中,需要识别用户的邮箱是否已经存在,不存在则添加,存在则进行相关的数据更新,现有技术是通过普通执行逻辑实现的,即逐个库、逐个表的去查询,不仅耗时太长,执行效率也比较低。
发明内容
有鉴于此,本发明提供一种数据定位方法及装置,以实现精确定位数据所在的库与表。
为实现上述目的,本发明提供以下的技术方案:
第一方面,本发明实施例提供了一种数据定位方法,所述方法包括:
接收邮箱数据;
对所述邮箱数据进行哈希计算,得到16进制的哈希值;
将16进制的哈希值进行10进制的INT型转换,得到与所述邮箱数据对应的邮箱标识码(EMID);
查询分库分表数据库中是否已存在所述EMID;
如果已存在所述EMID,则根据所述EMID,从分库分表数据库中,确定所述EMID所在的分库和分表,以定位所述邮箱数据所在的存储位置。
进一步地,上述方法中,在所述根据所述EMID,从分库分表的数据库中,定位所述邮箱数据所在的存储位置的步骤之后,还包括:
通过执行数据更新语句将所述邮箱数据对应覆盖上一次存储的数据,已完成数据更新。
进一步地,所述方法还包括:
如果未存在所述EMID,则通过执行数据添加语句将所述邮箱数据添加至所述分库分表数据库中,已完成数据添加。
进一步地,所述方法还包括:
确定数据库的分库分表策略;
按照所述分库分表策略,对所述数据库进行分库和分表,得到分库分表数据库。
进一步地,上述方法中,述分库分表数据库中的每一个数据都有唯一的EMID。
第二方面,本发明实施例提供了一种数据定位装置,所述装置包括:
数据接收模块,用于接收邮箱数据;
数据计算模块,用于对所述邮箱数据进行哈希计算,得到16进制的哈希值;
数据转换模块,用于将16进制的哈希值进行10进制的INT型转换,得到与所述邮箱数据对应的邮箱标识码(EMID);
数据查询模块,用于查询分库分表数据库中是否已存在所述EMID;
数据定位模块,用于如果所述数据查询模块查询到已存在所述EMID,则根据所述EMID,从分库分表数据库中,确定所述EMID所在的分库和分表,以定位所述邮箱数据所在的存储位置。
进一步地,所述装置还包括:
数据更新模块,用于在根据所述EMID,从分库分表的数据库中,定位所述邮箱数据所在的存储位置之后,通过执行数据更新语句将所述邮箱数据对应覆盖上一次存储的数据,已完成数据更新。
进一步地,所述装置还包括:
数据添加模块,用于如果所述数据查询模块查询到未存在所述EMID,则通过执行数据添加语句将所述邮箱数据添加至所述分库分表数据库中,已完成数据添加。
进一步地,所述装置还包括:
策略确定模块,用于确定数据库的分库分表策略;
策略执行模块,用于按照所述分库分表策略,对所述数据库进行分库和分表,得到分库分表数据库。
进一步地,上述装置中,所述分库分表数据库中的每一个数据都有唯一的EMID。
本发明实施例的技术方案,能够精确定位数据所在的库与表,避免对数据库全库表扫描,很大程度低地提高了程序执行效率,提升了系统处理数据的能力,同时还降低了数据库的开销,耗时也减少。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例一提供的一种数据定位方法的流程示意图;
图2是本发明实施例二提供的一种数据定位方法的流程示意图;
图3是本发明实施例三提供的一种数据定位装置的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
请参阅附图1,为本发明实施例一提供的一种数据定位方法的流程示意图,该方法适用于数据存储路径定位的场景,该方法由数据定位装置来执行,该装置可以由软件和/或硬件实现,集成于计算机或服务器系统内部。该方法具体包括如下步骤:
S101、接收邮箱数据。
S102、对所述邮箱数据进行哈希计算,得到16进制的哈希值。
其中,哈希计算是指通过FNV哈希算法计算,而哈希值是指散列函数。
需要说明的是,本发明实施例计算得到的哈希值在千万级的数据量中,可能会出现碰撞相同,但为了性能,这种情况是在可以接受范围内的。
S103、将16进制的哈希值进行10进制的INT型转换,得到与所述邮箱数据对应的邮箱标识码(EMID)。
其中,INT(integer,简称INT)型是指INT型数据,即整数型数据。
可以理解的是,本发明实施例所述的进制转换可以使用各种开发语言自带的函数进行转换。
S104、查询分库分表数据库中是否已存在所述EMID;如果已存在所述EMID,则执行S105,如果未存在所述EMID,则执行S107。
S105、根据所述EMID,从分库分表数据库中,确定所述EMID所在的分库和分表,以定位所述邮箱数据所在的存储位置。
S106、通过执行数据更新语句将所述邮箱数据对应覆盖上一次存储的数据,已完成数据更新。
S107、通过执行数据添加语句将所述邮箱数据添加至所述分库分表数据库中,已完成数据添加。
其中,对于数据添加语句为INSERT IGNORE INTO;数据更新语句为UPDATEDB.TABLE WHERE EMID=emid。
需要说明的是,在得到EMID后,通过数据库的分库分表规则算法原理,可以迅速定位到需要查询的邮箱数据所在的库、表,以完成对邮箱数据的更新或添加。
优选的,所述分库分表数据库中的每一个数据都有唯一的EMID,该EMID在数据库中被设置成唯一索引,这是本发明实施例提供的技术方案能够实现数据快递定位的关键。
本发明实施例提供的一种数据定位方法,能够精确定位数据所在的库与表,避免对数据库全库表扫描,很大程度低地提高了程序执行效率,提升了系统处理数据的能力,同时还降低了数据库的开销,耗时也减少。
实施例二
图2是本发明实施例二提供的一种数据定位方法的流程示意图,本实施例在实施例一提供的技术方案的基础上,在接收邮箱数据之前,对该方法做了进一步优化。具体的,在接收邮箱数据之前,本实施例的方法具体可以包括如下步骤:
S201、确定数据库的分库分表策略;
其中,数据库的分库分表策略根据实际情况而定,依据不同标准有一定的差异;示例性的,在本发明实施例中,数据库的分库分表策略包括数据库的标记字段、分库规则和路由规则。
S202、按照所述分库分表策略,对所述数据库进行分库和分表,得到分库分表数据库。
示例性的,按照数据库的标记字段、分库规则和路由规则,对数据库表进行分库和分表。
本发明实施例提供的一种数据定位方法,能够精确定位数据所在的库与表,避免对数据库全库表扫描,很大程度低地提高了程序执行效率,提升了系统处理数据的能力,同时还降低了数据库的开销,耗时也减少。
实施例三
请参阅附图3,为本发明实施例三提供的一种数据定位装置的结构示意图,该装置适用于执行本发明实施例提供的数据定位方法。该装置具体包含如下模块:
数据接收模块31,用于接收邮箱数据;
数据计算模块32,用于对所述邮箱数据进行哈希计算,得到16进制的哈希值;
数据转换模块33,用于将16进制的哈希值进行10进制的INT型转换,得到与所述邮箱数据对应的邮箱标识码(EMID);
数据查询模块34,用于查询分库分表数据库中是否已存在所述EMID;
数据定位模块35,用于如果所述数据查询模块34查询到已存在所述EMID,则根据所述EMID,从分库分表数据库中,确定所述EMID所在的分库和分表,以定位所述邮箱数据所在的存储位置。
优选的,所述数据定位装置还包括:
数据更新模块,用于在根据所述EMID,从分库分表的数据库中,定位所述邮箱数据所在的存储位置之后,通过执行数据更新语句将所述邮箱数据对应覆盖上一次存储的数据,已完成数据更新。
优选的,所述数据定位装置还包括:
数据添加模块,用于如果所述数据查询模块查询到未存在所述EMID,则通过执行数据添加语句将所述邮箱数据添加至所述分库分表数据库中,已完成数据添加。
优选的,所述数据定位装置还包括:
策略确定模块,用于确定数据库的分库分表策略;
策略执行模块,用于按照所述分库分表策略,对所述数据库进行分库和分表,得到分库分表数据库。
优选的,所述数据定位装置中,所述分库分表数据库中的每一个数据都有唯一的EMID。
本发明实施例的一种数据定位装置,通过接收邮箱数据;对所述邮箱数据进行哈希计算,得到16进制的哈希值;将16进制的哈希值进行10进制的INT型转换,得到与所述邮箱数据对应的邮箱标识码(EMID);查询分库分表数据库中是否已存在所述EMID;如果已存在所述EMID,则根据所述EMID,从分库分表数据库中,确定所述EMID所在的分库和分表,以定位所述邮箱数据所在的存储位置。基于上述方法及装置,能够精确定位数据所在的库与表,避免对数据库全库表扫描,很大程度低地提高了程序执行效率,提升了系统处理数据的能力,同时还降低了数据库的开销,耗时也减少。
上述装置可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种数据定位方法,其特征在于,包括:
接收邮箱数据;
对所述邮箱数据进行哈希计算,得到16进制的哈希值;
将16进制的哈希值进行10进制的INT型转换,得到与所述邮箱数据对应的邮箱标识码(EMID);
查询分库分表数据库中是否已存在所述EMID;
如果已存在所述EMID,则根据所述EMID,从分库分表数据库中,确定所述EMID所在的分库和分表,以定位所述邮箱数据所在的存储位置。
2.根据权利要求1所述的数据定位方法,其特征在于,在所述根据所述EMID,从分库分表的数据库中,定位所述邮箱数据所在的存储位置的步骤之后,还包括:
通过执行数据更新语句将所述邮箱数据对应覆盖上一次存储的数据,已完成数据更新。
3.根据权利要求1所述的数据定位方法,其特征在于,还包括:
如果未存在所述EMID,则通过执行数据添加语句将所述邮箱数据添加至所述分库分表数据库中,已完成数据添加。
4.根据权利要求1所述的数据定位方法,其特征在于,还包括:
确定数据库的分库分表策略;
按照所述分库分表策略,对所述数据库进行分库和分表,得到分库分表数据库。
5.根据权利要求1所述的数据定位方法,其特征在于,所述分库分表数据库中的每一个数据都有唯一的EMID。
6.一种数据定位装置,其特征在于,包括:
数据接收模块,用于接收邮箱数据;
数据计算模块,用于对所述邮箱数据进行哈希计算,得到16进制的哈希值;
数据转换模块,用于将16进制的哈希值进行10进制的INT型转换,得到与所述邮箱数据对应的邮箱标识码(EMID);
数据查询模块,用于查询分库分表数据库中是否已存在所述EMID;
数据定位模块,用于如果所述数据查询模块查询到已存在所述EMID,则根据所述EMID,从分库分表数据库中,确定所述EMID所在的分库和分表,以定位所述邮箱数据所在的存储位置。
7.根据权利要求6所述的数据定位装置,其特征在于,还包括:
数据更新模块,用于在根据所述EMID,从分库分表的数据库中,定位所述邮箱数据所在的存储位置之后,通过执行数据更新语句将所述邮箱数据对应覆盖上一次存储的数据,已完成数据更新。
8.根据权利要求6所述的数据定位装置,其特征在于,还包括:
数据添加模块,用于如果所述数据查询模块查询到未存在所述EMID,则通过执行数据添加语句将所述邮箱数据添加至所述分库分表数据库中,已完成数据添加。
9.根据权利要求6所述的数据定位装置,其特征在于,还包括:
策略确定模块,用于确定数据库的分库分表策略;
策略执行模块,用于按照所述分库分表策略,对所述数据库进行分库和分表,得到分库分表数据库。
10.根据权利要求6所述的数据定位装置,其特征在于,所述分库分表数据库中的每一个数据都有唯一的EMID。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810615562.5A CN108875003A (zh) | 2018-06-14 | 2018-06-14 | 一种数据定位方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810615562.5A CN108875003A (zh) | 2018-06-14 | 2018-06-14 | 一种数据定位方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108875003A true CN108875003A (zh) | 2018-11-23 |
Family
ID=64339179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810615562.5A Pending CN108875003A (zh) | 2018-06-14 | 2018-06-14 | 一种数据定位方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108875003A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571575A (zh) * | 2011-12-29 | 2012-07-11 | 奇智软件(北京)有限公司 | 一种session 信息创建方法、装置和系统 |
CN104252457A (zh) * | 2013-06-25 | 2014-12-31 | 北京百度网讯科技有限公司 | 一种用于对数据集合进行管理的方法与设备 |
CN105930387A (zh) * | 2016-04-14 | 2016-09-07 | 北京思特奇信息技术股份有限公司 | 一种基于数据路由、分库分表的数据操作系统及方法 |
CN106528579A (zh) * | 2015-09-15 | 2017-03-22 | 阿里巴巴集团控股有限公司 | 一种基于分库分表结构数据库的查询方法、装置及系统 |
CN106897409A (zh) * | 2017-02-16 | 2017-06-27 | 北京致远互联软件股份有限公司 | 数据分库存储方法及装置 |
CN107273529A (zh) * | 2017-06-28 | 2017-10-20 | 武汉图信科技有限公司 | 基于哈希函数的高效层级索引构建及检索方法 |
-
2018
- 2018-06-14 CN CN201810615562.5A patent/CN108875003A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571575A (zh) * | 2011-12-29 | 2012-07-11 | 奇智软件(北京)有限公司 | 一种session 信息创建方法、装置和系统 |
CN104252457A (zh) * | 2013-06-25 | 2014-12-31 | 北京百度网讯科技有限公司 | 一种用于对数据集合进行管理的方法与设备 |
CN106528579A (zh) * | 2015-09-15 | 2017-03-22 | 阿里巴巴集团控股有限公司 | 一种基于分库分表结构数据库的查询方法、装置及系统 |
CN105930387A (zh) * | 2016-04-14 | 2016-09-07 | 北京思特奇信息技术股份有限公司 | 一种基于数据路由、分库分表的数据操作系统及方法 |
CN106897409A (zh) * | 2017-02-16 | 2017-06-27 | 北京致远互联软件股份有限公司 | 数据分库存储方法及装置 |
CN107273529A (zh) * | 2017-06-28 | 2017-10-20 | 武汉图信科技有限公司 | 基于哈希函数的高效层级索引构建及检索方法 |
Non-Patent Citations (1)
Title |
---|
李真文: "《SQL Server 2000开发人员指南》", 31 January 2001 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8918377B2 (en) | Multiple source data management using a conflict rule | |
CN108052340B (zh) | 一种应用升级方法、装置 | |
CN109542875B (zh) | 一种配置文件的生成方法及装置 | |
US20120185529A1 (en) | Application server management system, application server management method, management apparatus, application server and computer program | |
CN105550225A (zh) | 索引构建方法、查询方法及装置 | |
US8196090B2 (en) | Aggregation of constraints across profiles | |
CN104462477A (zh) | 基于时间戳的数据同步的方法、装置及系统 | |
JP6975153B2 (ja) | データ格納サービス処理方法及び装置 | |
US8271538B2 (en) | Automated generation of modeling language profiles | |
CN109558471A (zh) | 栅格地图的更新方法、装置、存储介质和系统 | |
US8086436B2 (en) | Preliminary data representations of a deployment activity model | |
CN104301990A (zh) | 一种数据同步的方法及装置 | |
CN102831169B (zh) | 地理信息系统中的平面图形关系确定方法及系统 | |
CN106095511A (zh) | 一种服务器升级方法和装置 | |
EP3896908B1 (en) | Event stream processing system, event stream processing method, event stream processing program | |
CN105100117A (zh) | 一种用于访问组合服务的方法及装置 | |
CN108875003A (zh) | 一种数据定位方法及装置 | |
CN111126613A (zh) | 用于深度学习的方法、设备和计算机程序产品 | |
US10216771B2 (en) | Creating and handling identification for a resource in a configuration database | |
TWI643077B (zh) | 適應性調整資料庫結構之方法與調整裝置 | |
CN104539661A (zh) | 消息队列处理方法和装置 | |
CN113568561A (zh) | 用于信息处理的方法、电子设备和计算机存储介质 | |
CN113609130B (zh) | 获取网关接入数据的方法、装置、电子设备及存储介质 | |
CN115188190B (zh) | 交通数据处理模式的更新方法、装置和车路协同系统 | |
CN114780264A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181123 |
|
RJ01 | Rejection of invention patent application after publication |