一种数据库的实现方法和设备技术

技术编号:11759030 阅读:119 留言:0更新日期:2015-07-22 12:34
本发明专利技术的实施方式提供了一种数据库的实现方法。该方法包括:根据目标用户的注册时间,从可用于记录用户数据的可用数据库中,确定用于记录所述目标用户的数据的目标数据库;其中,各个可用数据库各对应于一个时间段,所述目标数据库对应的时间段包含所述目标用户的注册时间;建立所述目标用户与所述目标数据库之间的第一对应关系,以便根据所述第一对应关系而在所述目标数据库中查询和/或记录所述目标用户的数据。通过按照注册时间对用户数据进行数据库分库分表,本发明专利技术的方法避免了应用系统运行时大量数据频繁的数据迁移,从而显著地提升了应用系统的数据库性能,为用户带来了更好的体验。此外,本发明专利技术的实施方式提供了一种数据库的实现设备。

【技术实现步骤摘要】

本专利技术的实施方式涉及数据库
,更具体地,本专利技术的实施方式涉及一种数据库的实现方法和设备
技术介绍
本部分旨在为权利要求书中陈述的本专利技术的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。许多应用系统在为用户提供服务时,其功能需要通过对数据库进行查询、更新等数据操作来实现。对于一些应用系统来说,随着用户数量的急剧增长以及各用户对应用系统提供的各种服务越来越频繁地使用,数据库中增加数据、删除数据、更改数据及查询数据等数据操作的开销越来越大,这使得单一数据库的性能难以满足这样巨大的数据操作开销。因此,为了提高应用系统的性能而满足大量用户对大量服务的使用需求,需要将应用系统的单一数据库进行分库分表(sharding),使得应用系统涉及的数据分配到多个数据库中记录,从而使得应用系统承担的大量数据操作能够分摊到多个数据库执行,减小每个数据库的数据操作开销。目前,已经出现了一些对数据库进行分库分表的实现方式。例如,一种现有的数据库分库分表方式是散列方式(即hash算法),具体地,对于应用系统来说,对当前可用于记录数据的多个可用数据库进行编号,根据各用户的用户标识利用散列算法计算各用户的散列值,再分别将各用户的散列值对可用数据库的数量取余数,并以各用户的散列值相对于可用数据库数量的余数作为各用户对应的编号,将各用户的数据映射到各用户对应编号的可用数据库中。这样,各用户的数据可以根据其用户标识映射到不同的数据库中,从而降低数据库的访问压力。
技术实现思路
需要说明的是,在应用系统的运行过程中,随着新用户不断地注册到应用系统以及已注册用户对应用系统的使用,应用系统需要记录的数据会不断增加,在当前可用于记录数据的数据库数量不能满足当前记录的数据数量对应的数据操作开销时,就需要增加数据库去分担数据的记录,从而保证各个数据库能够承担其记录的数据数量对应的数据操作开销。可见,在应用系统的运行过程中,通常需要动态地增加数据库去分担数据的记录。此夕卜,在应用系统的运行过程中,有时一些数据库所在设备也会宕机,宕机设备的数据库则不能再用于记录数据和响应数据操作,从而使得用于记录数据的数据库减少。由此可见,在应用系统的运行过程中,用于记录数据的数据库的数量是动态变化的。而在现有技术中,由于数据库分库分表时各用户的数据是映射到以各用户的散列值相对于数据库数量的余数作为编号的数据库,当数据库的数量增加或者减少时,大部分用户的散列值相对于数据库数量的余数都会发生变化,这导致了大部分用户的数据在数据库数量发生变化时需要从一个数据库迀移到另一个数据库中记录。因此,在应用系统的运行过程中,由于用于记录数据的数据库数量是动态变化的,每次数据库数量发生变化都会导致大部分用户的数据需要在数据库之间进行数据迀移,而大量数据的数据迀移则导致数据库需要为大量数据重新构建索引和缓存,从而大大降低了应用系统的数据库性能。由此可见,在现有技术中,应用系统运行过程中,随着用于记录数据的数据库数量的动态变化,经常发生大量数据在数据库之间进行数据迀移,从而大幅度降低了数据库的性能,这是非常令人烦恼的过程。为此,非常需要一种改进的数据库的实现方法和设备,以在数据库数量发生改变时避免大量数据在数据库之间进行数据迀移,从而提升数据库的性能。在本上下文中,本专利技术的实施方式期望提供一种数据库的实现方法和设备。在本专利技术实施方式的第一方面中,提供了一种数据库的实现方法,包括:根据目标用户的注册时间,从可用于记录用户数据的可用数据库中,确定用于记录所述目标用户的数据的目标数据库;其中,各个可用数据库各对应于一个时间段,所述目标数据库对应的时间段包含所述目标用户的注册时间;建立所述目标用户与所述目标数据库之间的第一对应关系,以便根据所述第一对应关系而在所述目标数据库中查询和/或记录所述目标用户的数据。在本专利技术实施方式的第二方面中,提供了一种数据库的实现设备,包括:第一确定模块,用于根据目标用户的注册时间,从可用于记录用户数据的可用数据库中,确定用于记录所述目标用户的数据的目标数据库;其中,各个可用数据库各对应于一个时间段,所述目标数据库对应的时间段包含所述目标用户的注册时间;第一建立模块,用于建立所述目标用户与所述目标数据库之间的第一对应关系,以便根据所述第一对应关系而在所述目标数据库中查询和/或记录所述目标用户的数据。根据本专利技术实施方式的用于数据库实现的方法和设备,应用系统可以按照用户注册时间来为各用户分配用于记录用户数据的数据库,以实现对应用系统记录的用户数据进行分库分表,具体地,以应用系统中的任意一个用户作为目标用户,根据该目标用户的注册时间,可以从可用数据库中确定用于记录目标用户的数据的目标数据库,并建立目标用户与目标数据库之间的第一对应关系,以便根据该第一对应关系在目标数据库中查询和/或记录目标用户的数据,其中,各个可用数据库各对应于一个时间段,该目标数据库对应的时间段包含该目标用户的注册时间。由此可见,对于应用系统的各个用户及各个可用数据库来说,由于各个可用数据库中记录的数据均是用户注册时间位于其对应时间段内的用户的数据,也即,各个可用数据库记录的是在各自对应时间段内注册用户的数据,因此,对于应用系统的运行过程中可用数据库数量增加或减少的动态变化,大部分或全部可用数据库依然可以是用于记录其自身时间段内注册用户的数据,这使得大部分用户的数据依然可以记录在其原本所在的可用数据库中而无需从一个可用数据库迀移到另一个数据库中,从而避免了大量数据频繁的数据迀移所导致的重新为大量数据构建索引和缓存,大大提升了应用系统的数据库性能,为用户带来了更好的体验。【附图说明】通过参考附图阅读下文的详细描述,本专利技术示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本专利技术的若干实施方式,其中:图1示意性地示出了本专利技术实施方式的一个示例性应用场景的框架示意图;图2示意性地示出了本专利技术中数据库的实现方法一实施例的流程图;图3示意性地示出了本专利技术中数据库的实现方法另一实施例的流程图;图4示意性地示出了本专利技术实施例中一种应用系统数据库分库分表示例的示意图;图5示意性地示出了本专利技术实施例中一种应用系统可用数据库扩容示例的示意图;图6示意性地示出了本专利技术实施例中另一种应用系统可用数据库扩容示例的示意图;图7示意性地示出了本专利技术中数据库的实现设备一实施例的结构图;在附图中,相同或对应的标号表不相同或对应的部分。【具体实施方式】下面将参考若干示例性实施方式来描述本专利技术的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本专利技术,而并非以任何方式限制本专利技术的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。本领域技术人员知道,本专利技术的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。根据本专利技术的实施方式,提出了一种数据库的实现方法和设备。在本文中,需要理解的是,所涉及的术语“应用系统”表示的是能本文档来自技高网...

【技术保护点】
一种方法,包括:根据目标用户的注册时间,从可用于记录用户数据的可用数据库中,确定用于记录所述目标用户的数据的目标数据库;其中,各个可用数据库各对应于一个时间段,所述目标数据库对应的时间段包含所述目标用户的注册时间;建立所述目标用户与所述目标数据库之间的第一对应关系,以便根据所述第一对应关系而在所述目标数据库中查询和/或记录所述目标用户的数据。

【技术特征摘要】

【专利技术属性】
技术研发人员:杜杰朋曹鲁吴波马坤
申请(专利权)人:乐得科技有限公司
类型:发明
国别省市:浙江;33

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

1