CN107229674A - 一种数据迁移装置、服务器及方法 - Google Patents

一种数据迁移装置、服务器及方法 Download PDF

Info

Publication number
CN107229674A
CN107229674A CN201710283588.XA CN201710283588A CN107229674A CN 107229674 A CN107229674 A CN 107229674A CN 201710283588 A CN201710283588 A CN 201710283588A CN 107229674 A CN107229674 A CN 107229674A
Authority
CN
China
Prior art keywords
point
user
migrated
point table
data
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
Application number
CN201710283588.XA
Other languages
English (en)
Inventor
程文星
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nubia Technology Co Ltd
Original Assignee
Nubia Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nubia Technology Co Ltd filed Critical Nubia Technology Co Ltd
Priority to CN201710283588.XA priority Critical patent/CN107229674A/zh
Publication of CN107229674A publication Critical patent/CN107229674A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据迁移装置、服务器及方法,该数据迁移装置包括计算模块,用于计算数据库中每个分表的分表迁移值;比较模块,用于将每个分表的分表迁移值与阈值进行比较;选择模块,用于从每个大于阈值的分表中,选择出每个大于阈值的分表分别对应的数据量最大的用户,并将其作为该分表的待迁移用户;将小于阈值的分表作为目标分表;迁移模块,用于将每个待迁移用户的数据迁移到目标分表中;采用上述方案,将分表迁移值大于阈值的分表中的数据量最大的用户,迁移到分表迁移值小于阈值的分表中,提升了数据库的查询效率,提高了数据库的利用率。

Description

一种数据迁移装置、服务器及方法
技术领域
本发明涉及数据库领域,更具体地说,涉及一种数据迁移装置、服务器及方法。
背景技术
MYSQL(关系型数据库管理系统)数据库是现在常用的一种数据存储,但是当存储的数据量达到一定数量后,MYSQL的查询性能将会出现严重下降,这时候就需要将数据库中的大表做数据拆分,拆分成多个分表。
但是在拆分成多个分表后,各个分表还是会存在查询频率、数据量不一致的情况,若某些分表的查询频率、数据量均较大,则会出现查询缓慢的情况,造成查询效率低下;某些分表的查询频率、数据量均较小,则数据库利用率不高。
发明内容
本发明的主要目的在于提出一种数据迁移装置、服务器及方法,旨在解决现有技术中,数据库的查询效率低下、利用率不高的问题。
为解决上述技术问题,本发明提供一种数据迁移装置,包括:
计算模块,用于计算数据库中每个分表的分表迁移值;
比较模块,用于将每个分表的分表迁移值与阈值进行比较;
选择模块,用于从每个大于阈值的分表中,选择出每个大于阈值的分表分别对应的数据量最大的用户,并将其作为该分表的待迁移用户;将小于阈值的分表作为目标分表;
迁移模块,用于将每个待迁移用户的数据迁移到目标分表中。
其中,计算模块用于统计数据库中每个分表的数据量和查询频率;计算所有分表的数据量的平均值和查询频率的平均值;按照以下公式计算每个分表的分表迁移值:
分表迁移值=(该分表的数据量/所有分表数据量的平均值)*(该分表的查询频率/所有分表查询频率的平均值)。
其中,迁移模块包括:
锁定子模块,用于将待迁移用户锁定;
第一删除子模块,用于删除该待迁移用户的分表缓存信息,分表缓存信息用于指示该待迁移用户数据所属的分表;
插入子模块,用于将该待迁移用户的数据插入目标分表中;
修改子模块,用于修改该待迁移用户所属的分表;
第二删除子模块,用于将原分表中该待迁移用户的数据删除;
解锁子模块,用于解除该待迁移用户的锁定。
其中,还包括确定模块,用于在迁移模块将每个待迁移用户的数据迁移到目标分表中之前,根据分表迁移值最大的分表中的待迁移用户迁移到分表迁移值最小的目标分表、分表迁移值最小的分表中的待迁移用户迁移到分表迁移值最大的目标分表的规则,确定出每个待迁移用户待迁移的目标分表。
进一步地,本发明提供一种服务器,其特征在于,包括上述的数据迁移装置。
进一步地,本发明提供一种数据迁移方法,包括:
计算数据库中每个分表的分表迁移值;
将每个分表的分表迁移值与阈值进行比较;
从每个大于阈值的分表中,选择出每个大于阈值的分表分别对应的数据量最大的用户,并将其作为该分表的待迁移用户;将小于阈值的分表作为目标分表;
将每个待迁移用户的数据迁移到目标分表中。
其中,计算数据库中每个分表的分表迁移值包括:
统计数据库中每个分表的数据量和查询频率;
计算所有分表的数据量的平均值和查询频率的平均值;
按照以下公式计算每个分表的分表迁移值:
分表迁移值=(该分表的数据量/所有分表数据量的平均值)*(该分表的查询频率/所有分表查询频率的平均值)。
其中,将每个待迁移用户的数据迁移到目标分表中包括:
将待迁移用户锁定;
删除该待迁移用户的分表缓存信息,分表缓存信息用于指示该待迁移用户数据所属的分表;
将该待迁移用户的数据插入目标分表中,并修改该待迁移用户所属的分表;
将原分表中该待迁移用户的数据删除;
解除该待迁移用户的锁定。
其中,在将每个待迁移用户的数据迁移到目标分表中之前,还包括:
根据分表迁移值最大的分表中的待迁移用户迁移到分表迁移值最小的目标分表、分表迁移值最小的分表中的待迁移用户迁移到分表迁移值最大的目标分表的规则,确定出每个待迁移用户待迁移的目标分表。
其中,将每个待迁移用户的数据按照预设规则迁移到目标分表中的顺序包括:
依次将每个待迁移用户的数据按照预设规则迁移到目标分表中;
或者,同时将每个待迁移用户的数据按照预设规则迁移到目标分表中。
有益效果
本发明提供了一种数据迁移装置、服务器及方法,该数据迁移装置包括计算模块,用于计算数据库中每个分表的分表迁移值;比较模块,用于将每个分表的分表迁移值与阈值进行比较;选择模块,用于从每个大于阈值的分表中,选择出每个大于阈值的分表分别对应的数据量最大的用户,并将其作为该分表的待迁移用户;将小于阈值的分表作为目标分表;迁移模块,用于将每个待迁移用户的数据迁移到目标分表中;采用上述方案,将分表迁移值大于阈值的分表中的数据量最大的用户,迁移到分表迁移值小于阈值的分表中,提升了数据库的查询效率,提高了数据库的利用率。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1为实现本发明各个实施例一个可选的服务器的结构示意图;
图2为本发明第一实施例提供的一种数据迁移装置的示意图;
图3为本发明第一实施例提供的另一种数据迁移装置的示意图;
图4为本发明第二实施例提供的一种服务器的示意图;
图5为本发明第三实施例提供的一种数据迁移方法的流程图;
图6为本发明第四实施例提供的另一种数据迁移方法的流程图。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,"模块"与"部件"可以混合地使用。
如图1所示,为实现本发明各个实施例一个可选的服务器的结构示意图,该服务器至少包括:输入输出(IO)总线11、处理器12、存储器13、内存14和通信装置15。其中,
输入输出(IO)总线11分别与自身所属的服务器的其它部件(处理器12、存储器13、内存14和通信装置15)连接,并且为其它部件提供传送线路。
处理器12通常控制自身所属的服务器的总体操作。例如,处理器12执行计算和确认等操作。其中,处理器12可以是中央处理器(CPU)。
存储器13存储处理器可读、处理器可执行的软件代码,其包含用于控制处理器12执行本文描述的功能的指令(即软件执行功能)。
其中,本发明提供的数据迁移装置中,实现计算模块、比较模块、选择模块、迁移模块和确定模块的功能的软件代码可存储在存储器13中,并由处理器12执行或编译后执行。
内存14,一般采用半导体存储单元,包括随机存储器(RAM),只读存储器(ROM),以及高速缓存(CACHE),RAM是其中最重要的存储器。内存14是计算机中重要的部件之一,它是与CPU12进行沟通的桥梁,计算机中所有程序的运行都是在内存中进行的,其作用是用于暂时存放CPU12中的运算数据,以及与硬盘等外部存储器交换的数据,只要计算机在运行中,CPU12就会把需要运算的数据调到内存中进行运算,当运算完成后CPU12再将结果传送出来,内存的运行也决定了计算机的稳定运行。
通信装置15,通常包括一个或多个组件,其允许自身所属的服务器与无线通信系统或网络之间的无线电通信。
以下通过具体实施例对本发明进行详细说明。
第一实施例
本实施例提供了一种数据迁移装置,参见图2,图2为本实施例提供的一种数据迁移装置的示意图,该数据迁移装置包括:计算模块21、比较模块22、选择模块23、迁移模块24;
计算模块21,用于计算数据库中每个分表的分表迁移值;
分表是根据用户ID进行分表,每个分表中存在的用户ID的数量大于等于1,由于每个用户拥有的业务数据不一致,所以可能存在某些分表数据量过大、某些分表数据量较小的情况。
每个分表都有对应的分表迁移值,分表迁移值是用于比对每个分表性能压力情况的数值;分表迁移值越大,则代表该分表的性能压力越大,需要将该分表内数据量大的用户进行数据迁移,迁移到分表迁移值较小的分表内;分表迁移值越小,则可以代表该分表没有压力,可将其他分表的用户数据迁移到该分表内。
其中,计算模块21具体用于:
统计数据库中每个分表的数据量和查询频率;
其中,分表的查询频率可以为1分钟内该分表被查询的次数;
计算所有分表的数据量的平均值和查询频率的平均值;
按照以下方式计算每个分表的分表迁移值:
计算该分表的数据量与所有分表数据量的平均值的比值,以及该分表的查询频率与所有分表查询频率的平均值的比值;
将上述两个比值的乘积作为该分表的分表迁移值。
也即每个分表的分表迁移值的计算公式为:
分表迁移值=(该分表的数据量/所有分表数据量的平均值)*(该分表的查询频率/所有分表查询频率的平均值)
由于缓存中的当前分表内可能存在用户数据量较小、且数据量变化大的情况,所以在计算模块21计算数据库中每个分表的分表迁移值的过程中,不将缓存中的当前分表计算在内。
比较模块22,用于将每个分表的分表迁移值与阈值进行比较;
该阀值可根据服务器的不同进行设置,示例性的,阈值可以设置为2。
若比较模块22处理后的结果为每个分表的分表迁移值均小于等于阈值,则流程结束。
选择模块23,用于从每个大于阈值的分表中,选择出每个大于阈值的分表分别对应的数据量最大的用户,并将其作为该分表的待迁移用户;将小于阈值的分表作为目标分表;
示例性的,若分表迁移值大于阈值的分表有两个,分别为分表1、分表2,且分表1的分表迁移值大于分表2的分表迁移值;分表迁移值小于阈值的分表有两个,分别为分表3、分表4,且分表3的分表迁移值大于分表4的分表迁移值;
从分表1内选择出该分表对应的数据量最大的用户,该用户为用户A,用户A为分表1的待迁移用户;从分表2内选择出该分表对应的数据量最大的用户,该用户为用户B,用户B为分表2的待迁移用户;将分表3、分表4均作为目标分表。
迁移模块24,用于将每个待迁移用户的数据迁移到目标分表中。
可选的,参见图3,图3为本实施例提供的另一种数据迁移装置的示意图,该数据迁移装置还包括确定模块25,用于在迁移模块24将每个待迁移用户的数据迁移到目标分表中之前,根据分表迁移值最大的分表中的待迁移用户迁移到分表迁移值最小的目标分表、分表迁移值最小的分表中的待迁移用户迁移到分表迁移值最大的目标分表的规则,确定出每个待迁移用户待迁移的目标分表;
即分表迁移值最大的分表中的待迁移用户将会迁移到分表迁移值最小的目标分表中,分表迁移值第二大的分表中的待迁移用户将会迁移到分表迁移值第二小的目标分表中,以此类推,分表迁移值最小的分表中的待迁移用户迁移到分表迁移值最大的目标分表中。
示例性的,由于上述的分表1的分表迁移值大于分表2的分表迁移值,分表3的分表迁移值大于分表4的分表迁移值,所以可以将分表1中的用户A的数据迁移到分表4中,将分表2中的用户B的数据迁移到分表3中。
其中,迁移模块24包括:锁定子模块241、第一删除子模块242、插入子模块243、修改子模块244、第二删除子模块245、解锁子模块246;
锁定子模块241,用于将待迁移用户锁定;
将待迁移用户锁定的目的是为了防止待迁移用户在同步数据时进行数据库操作,引起数据错误;
第一删除子模块242,用于删除该待迁移用户的分表缓存信息,分表缓存信息用于指示该待迁移用户数据所属的分表;
业务系统中有缓存用户的数据存在在哪个分表,需要删除改缓存;
插入子模块243,用于将该待迁移用户的数据插入目标分表中;
修改子模块244,用于修改该待迁移用户所属的分表;
其中,有专门的数据库表用于记录用户业务所属的分表;
第二删除子模块245,用于将原分表中该待迁移用户的数据删除;
解锁子模块246,用于解除该待迁移用户的锁定;
通过上述各个子模块的处理之后,则完成了待迁移用户的数据的迁移。
在一种实施方式中,迁移模块24将每个待迁移用户的数据按照预设规则迁移到目标分表中的顺序包括:
依次将每个待迁移用户的数据按照预设规则迁移到目标分表中;
可以是按照分表的序号由大到小的顺序依次将每个待迁移用户的数据按照预设规则迁移到目标分表中;
或者,可以是按照分表的序号由小到大的顺序依次将每个待迁移用户的数据按照预设规则迁移到目标分表中;
或者,可以是按照分表迁移值由大到小的顺序依次将每个待迁移用户的数据按照预设规则迁移到目标分表中;
或者,可以是按照分表迁移值由小到大的顺序依次将每个待迁移用户的数据按照预设规则迁移到目标分表中;
或者,同时将每个待迁移用户的数据按照预设规则迁移到目标分表中。
通过本实施例的实施,将查询频率、数据量均较大的分表内的数据量最大的用户数据迁移到查询频率、数据量均较小的分表中,也即将分表迁移值大于阈值的分表中的数据量最大的用户,迁移到分表迁移值小于阈值的分表中,提升了数据库的查询效率,提高了数据库的利用率。
第二实施例
本实施例提供一种服务器,参见图4,图4为本实施例提供的一种服务器的示意图,该服务器包括第一实施例中的数据迁移装置。
上述数据迁移装置的各功能模块执行的功能可通过图1中的部分硬件来实现,当然,各硬件执行的功能也可由上述功能模块实现。上述各功能模块的功能具体由如下硬件实现:
计算模块21、比较模块22、选择模块23、锁定子模块241、第一删除子模块242、插入子模块243、修改子模块244、第二删除子模块245、解锁子模块246、确定模块25的功能均可通过处理器12来实现;处理器12通常控制自身所属的服务器的总体操作。例如,处理器12执行计算、比较和确认等操作。其中,处理器12可以是中央处理器(CPU)。
处理器12,用于计算数据库中每个分表的分表迁移值;
分表是根据用户ID进行分表,每个分表中存在的用户ID的数量大于等于1,由于每个用户拥有的业务数据不一致,所以可能存在某些分表数据量过大、某些分表数据量较小的情况。
每个分表都有对应的分表迁移值,分表迁移值是用于比对每个分表性能压力情况的数值;分表迁移值越大,则代表该分表的性能压力越大,需要将该分表内数据量大的用户进行数据迁移,迁移到分表迁移值较小的分表内;分表迁移值越小,则可以代表该分表没有压力,可将其他分表的用户数据迁移到该分表内。
其中,处理器12具体用于:
统计数据库中每个分表的数据量和查询频率;
其中,分表的查询频率可以为1分钟内该分表被查询的次数;
计算所有分表的数据量的平均值和查询频率的平均值;
按照以下方式计算每个分表的分表迁移值:
计算该分表的数据量与所有分表数据量的平均值的比值,以及该分表的查询频率与所有分表查询频率的平均值的比值;
将上述两个比值的乘积作为该分表的分表迁移值。
也即每个分表的分表迁移值的计算公式为:
分表迁移值=(该分表的数据量/所有分表数据量的平均值)*(该分表的查询频率/所有分表查询频率的平均值)
由于缓存中的当前分表内可能存在用户数据量较小、且数据量变化大的情况,所以在处理器12计算数据库中每个分表的分表迁移值的过程中,不将缓存中的当前分表计算在内。
处理器12,用于将每个分表的分表迁移值与阈值进行比较;
该阀值可根据服务器的不同进行设置,示例性的,阈值可以设置为2。
若处理器12处理后的结果为每个分表的分表迁移值均小于等于阈值,则流程结束。
处理器12,用于从每个大于阈值的分表中,选择出每个大于阈值的分表分别对应的数据量最大的用户,并将其作为该分表的待迁移用户;将小于阈值的分表作为目标分表;
示例性的,若分表迁移值大于阈值的分表有两个,分别为分表1、分表2,且分表1的分表迁移值大于分表2的分表迁移值;分表迁移值小于阈值的分表有两个,分别为分表3、分表4,且分表3的分表迁移值大于分表4的分表迁移值;
从分表1内选择出该分表对应的数据量最大的用户,该用户为用户A,用户A为分表1的待迁移用户;从分表2内选择出该分表对应的数据量最大的用户,该用户为用户B,用户B为分表2的待迁移用户;将分表3、分表4均作为目标分表。
处理器12,用于将每个待迁移用户的数据迁移到目标分表中。
可选的,处理器12用于在将每个待迁移用户的数据迁移到目标分表中之前,根据分表迁移值最大的分表中的待迁移用户迁移到分表迁移值最小的目标分表、分表迁移值最小的分表中的待迁移用户迁移到分表迁移值最大的目标分表的规则,确定出每个待迁移用户待迁移的目标分表;
即分表迁移值最大的分表中的待迁移用户将会迁移到分表迁移值最小的目标分表中,分表迁移值第二大的分表中的待迁移用户将会迁移到分表迁移值第二小的目标分表中,以此类推,分表迁移值最小的分表中的待迁移用户迁移到分表迁移值最大的目标分表中。
示例性的,由于上述的分表1的分表迁移值大于分表2的分表迁移值,分表3的分表迁移值大于分表4的分表迁移值,所以可以将分表1中的用户A的数据迁移到分表4中,将分表2中的用户B的数据迁移到分表3中。
处理器12,用于将待迁移用户锁定;
将待迁移用户锁定的目的是为了防止待迁移用户在同步数据时进行数据库操作,引起数据错误;
处理器12,用于删除该待迁移用户的分表缓存信息,分表缓存信息用于指示该待迁移用户数据所属的分表;
业务系统中有缓存用户的数据存在在哪个分表,需要删除改缓存;
处理器12,用于将该待迁移用户的数据插入目标分表中;
处理器12,用于修改该待迁移用户所属的分表;
其中,有专门的数据库表用于记录用户业务所属的分表;
处理器12,用于将原分表中该待迁移用户的数据删除;
处理器12,用于解除该待迁移用户的锁定;
通过上述处理器12的处理之后,则完成了待迁移用户的数据的迁移。
在一种实施方式中,处理器12将每个待迁移用户的数据按照预设规则迁移到目标分表中的顺序包括:
依次将每个待迁移用户的数据按照预设规则迁移到目标分表中;
可以是按照分表的序号由大到小的顺序依次将每个待迁移用户的数据按照预设规则迁移到目标分表中;
或者,可以是按照分表的序号由小到大的顺序依次将每个待迁移用户的数据按照预设规则迁移到目标分表中;
或者,可以是按照分表迁移值由大到小的顺序依次将每个待迁移用户的数据按照预设规则迁移到目标分表中;
或者,可以是按照分表迁移值由小到大的顺序依次将每个待迁移用户的数据按照预设规则迁移到目标分表中;
或者,同时将每个待迁移用户的数据按照预设规则迁移到目标分表中。
通过本实施例的实施,将查询频率、数据量均较大的分表内的数据量最大的用户数据迁移到查询频率、数据量均较小的分表中,也即将分表迁移值大于阈值的分表中的数据量最大的用户,迁移到分表迁移值小于阈值的分表中,提升了数据库的查询效率,提高了数据库的利用率。
第三实施例
本实施例提供了一种数据迁移方法,参见图5,图5为本实施例提供的一种数据迁移方法的流程图,该数据迁移方法包括以下步骤:
S501:计算数据库中每个分表的分表迁移值;
分表是根据用户ID进行分表,每个分表中存在的用户ID的数量大于等于1,由于每个用户拥有的业务数据不一致,所以可能存在某些分表数据量过大、某些分表数据量较小的情况。
每个分表都有对应的分表迁移值,分表迁移值是用于比对每个分表性能压力情况的数值;分表迁移值越大,则代表该分表的性能压力越大,需要将该分表内数据量大的用户进行数据迁移,迁移到分表迁移值较小的分表内;分表迁移值越小,则可以代表该分表没有压力,可将其他分表的用户数据迁移到该分表内。
其中,S501具体包括:
统计数据库中每个分表的数据量和查询频率;
其中,分表的查询频率可以为1分钟内该分表被查询的次数;
计算所有分表的数据量的平均值和查询频率的平均值;
按照以下方式计算每个分表的分表迁移值:
计算该分表的数据量与所有分表数据量的平均值的比值,以及该分表的查询频率与所有分表查询频率的平均值的比值;
将上述两个比值的乘积作为该分表的分表迁移值。
也即每个分表的分表迁移值的计算公式为:
分表迁移值=(该分表的数据量/所有分表数据量的平均值)*(该分表的查询频率/所有分表查询频率的平均值)
由于缓存中的当前分表内可能存在用户数据量较小、且数据量变化大的情况,所以在计算数据库中每个分表的分表迁移值的过程中,不将缓存中的当前分表计算在内。
S502:将每个分表的分表迁移值与阈值进行比较;
该阀值可根据服务器的不同进行设置,示例性的,阈值可以设置为2。
若比较后的结果为每个分表的分表迁移值均小于等于阈值,则流程结束。
S503:从每个大于阈值的分表中,选择出每个大于阈值的分表分别对应的数据量最大的用户,并将其作为该分表的待迁移用户;将小于阈值的分表作为目标分表;
示例性的,若分表迁移值大于阈值的分表有两个,分别为分表1、分表2,且分表1的分表迁移值大于分表2的分表迁移值;分表迁移值小于阈值的分表有两个,分别为分表3、分表4,且分表3的分表迁移值大于分表4的分表迁移值;
从分表1内选择出该分表对应的数据量最大的用户,该用户为用户A,用户A为分表1的待迁移用户;从分表2内选择出该分表对应的数据量最大的用户,该用户为用户B,用户B为分表2的待迁移用户;将分表3、分表4均作为目标分表。
S504:将每个待迁移用户的数据迁移到目标分表中。
在S504之前,还包括:根据分表迁移值最大的分表中的待迁移用户迁移到分表迁移值最小的目标分表、分表迁移值最小的分表中的待迁移用户迁移到分表迁移值最大的目标分表的规则,确定出每个待迁移用户待迁移的目标分表;
即分表迁移值最大的分表中的待迁移用户将会迁移到分表迁移值最小的目标分表中,分表迁移值第二大的分表中的待迁移用户将会迁移到分表迁移值第二小的目标分表中,以此类推,分表迁移值最小的分表中的待迁移用户迁移到分表迁移值最大的目标分表中。
示例性的,由于上述的分表1的分表迁移值大于分表2的分表迁移值,分表3的分表迁移值大于分表4的分表迁移值,所以可以将分表1中的用户A的数据迁移到分表4中,将分表2中的用户B的数据迁移到分表3中。
其中,S504包括:
将待迁移用户锁定;
将待迁移用户锁定的目的是为了防止待迁移用户在同步数据时进行数据库操作,引起数据错误;
删除该待迁移用户的分表缓存信息,分表缓存信息用于指示该待迁移用户数据所属的分表;
业务系统中有缓存用户的数据存在在哪个分表,需要删除改缓存;
将该待迁移用户的数据插入目标分表中,并修改该待迁移用户所属的分表;
其中,有专门的数据库表用于记录用户业务所属的分表;
将原分表中该待迁移用户的数据删除;
解除该待迁移用户的锁定。
通过上述步骤之后,则完成了待迁移用户的数据的迁移。
在一种实施方式中,将每个待迁移用户的数据按照预设规则迁移到目标分表中的顺序包括:
依次将每个待迁移用户的数据按照预设规则迁移到目标分表中;
可以是按照分表的序号由大到小的顺序依次将每个待迁移用户的数据按照预设规则迁移到目标分表中;
或者,可以是按照分表的序号由小到大的顺序依次将每个待迁移用户的数据按照预设规则迁移到目标分表中;
或者,可以是按照分表迁移值由大到小的顺序依次将每个待迁移用户的数据按照预设规则迁移到目标分表中;
或者,可以是按照分表迁移值由小到大的顺序依次将每个待迁移用户的数据按照预设规则迁移到目标分表中;
或者,同时将每个待迁移用户的数据按照预设规则迁移到目标分表中。
通过本实施例的实施,将查询频率、数据量均较大的分表内的数据量最大的用户数据迁移到查询频率、数据量均较小的分表中,也即将分表迁移值大于阈值的分表中的数据量最大的用户,迁移到分表迁移值小于阈值的分表中,提升了数据库的查询效率,提高了数据库的利用率。
第四实施例
本实施例提供了一种数据迁移方法,参见图6,图6为本实施例提供的一种数据迁移方法的流程图,包括以下步骤:
S601:计算数据库中每个分表的分表迁移值;
S602:将每个分表的分表迁移值与阈值进行比较,比较的结果为:分表迁移值大于阈值的分表有两个,分别为分表1、分表2,且分表1的分表迁移值大于分表2的分表迁移值;分表迁移值小于阈值的分表有两个,分别为分表3、分表4,且分表3的分表迁移值大于分表4的分表迁移值;
S603:从分表1内选择出该分表对应的数据量最大的用户,该用户为用户A,用户A为分表1的待迁移用户;从分表2内选择出该分表对应的数据量最大的用户,该用户为用户B,用户B为分表2的待迁移用户;将分表3作为用户B待迁移的目标分表,将分表4作为用户A待迁移的目标分表。
S604:将分表1中的用户A的数据迁移到分表4中,将分表2中的用户B的数据迁移到分表3中。
通过本实施例的实施,将查询频率、数据量均较大的分表内的数据量最大的用户数据迁移到查询频率、数据量均较小的分表中,也即将分表迁移值大于阈值的分表中的数据量最大的用户,迁移到分表迁移值小于阈值的分表中,提升了数据库的查询效率,提高了数据库的利用率。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种数据迁移装置,其特征在于,包括:
计算模块,用于计算数据库中每个分表的分表迁移值;
比较模块,用于将每个分表的分表迁移值与阈值进行比较;
选择模块,用于从每个大于阈值的分表中,选择出每个大于阈值的分表分别对应的数据量最大的用户,并将其作为该分表的待迁移用户;将小于阈值的分表作为目标分表;
迁移模块,用于将每个待迁移用户的数据迁移到所述目标分表中。
2.如权利要求1所述的数据迁移装置,其特征在于,所述计算模块用于统计数据库中每个分表的数据量和查询频率;计算所有分表的数据量的平均值和查询频率的平均值;按照以下公式计算每个分表的分表迁移值:
分表迁移值=(该分表的数据量/所有分表数据量的平均值)*(该分表的查询频率/所有分表查询频率的平均值)。
3.如权利要求1或2所述的数据迁移装置,其特征在于,所述迁移模块包括:
锁定子模块,用于将待迁移用户锁定;
第一删除子模块,用于删除该待迁移用户的分表缓存信息,所述分表缓存信息用于指示该待迁移用户数据所属的分表;
插入子模块,用于将该待迁移用户的数据插入目标分表中;
修改子模块,用于修改该待迁移用户所属的分表;
第二删除子模块,用于将原分表中该待迁移用户的数据删除;
解锁子模块,用于解除该待迁移用户的锁定。
4.如权利要求1或2所述的数据迁移装置,其特征在于,还包括确定模块,用于在所述迁移模块将每个待迁移用户的数据迁移到所述目标分表中之前,根据分表迁移值最大的分表中的待迁移用户迁移到分表迁移值最小的目标分表、分表迁移值最小的分表中的待迁移用户迁移到分表迁移值最大的目标分表的规则,确定出每个待迁移用户待迁移的目标分表。
5.一种服务器,其特征在于,包括如权利要求1至4任一项所述的数据迁移装置。
6.一种数据迁移方法,其特征在于,包括:
计算数据库中每个分表的分表迁移值;
将每个分表的分表迁移值与阈值进行比较;
从每个大于阈值的分表中,选择出每个大于阈值的分表分别对应的数据量最大的用户,并将其作为该分表的待迁移用户;将小于阈值的分表作为目标分表;
将每个待迁移用户的数据迁移到所述目标分表中。
7.如权利要求6所述的数据迁移方法,其特征在于,所述计算数据库中每个分表的分表迁移值包括:
统计数据库中每个分表的数据量和查询频率;
计算所有分表的数据量的平均值和查询频率的平均值;
按照以下公式计算每个分表的分表迁移值:
分表迁移值=(该分表的数据量/所有分表数据量的平均值)*(该分表的查询频率/所有分表查询频率的平均值)。
8.如权利要求6或7所述的数据迁移方法,其特征在于,所述将每个待迁移用户的数据迁移到所述目标分表中包括:
将待迁移用户锁定;
删除该待迁移用户的分表缓存信息,所述分表缓存信息用于指示该待迁移用户数据所属的分表;
将该待迁移用户的数据插入目标分表中,并修改该待迁移用户所属的分表;
将原分表中该待迁移用户的数据删除;
解除该待迁移用户的锁定。
9.如权利要求6或7所述的数据迁移方法,其特征在于,在所述将每个待迁移用户的数据迁移到所述目标分表中之前,还包括:
根据分表迁移值最大的分表中的待迁移用户迁移到分表迁移值最小的目标分表、分表迁移值最小的分表中的待迁移用户迁移到分表迁移值最大的目标分表的规则,确定出每个待迁移用户待迁移的目标分表。
10.如权利要求6或7所述的数据迁移方法,其特征在于,所述将每个待迁移用户的数据按照预设规则迁移到所述目标分表中的顺序包括:
依次将每个待迁移用户的数据按照预设规则迁移到所述目标分表中;
或者,同时将每个待迁移用户的数据按照预设规则迁移到所述目标分表中。
CN201710283588.XA 2017-04-26 2017-04-26 一种数据迁移装置、服务器及方法 Pending CN107229674A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710283588.XA CN107229674A (zh) 2017-04-26 2017-04-26 一种数据迁移装置、服务器及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710283588.XA CN107229674A (zh) 2017-04-26 2017-04-26 一种数据迁移装置、服务器及方法

Publications (1)

Publication Number Publication Date
CN107229674A true CN107229674A (zh) 2017-10-03

Family

ID=59934570

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710283588.XA Pending CN107229674A (zh) 2017-04-26 2017-04-26 一种数据迁移装置、服务器及方法

Country Status (1)

Country Link
CN (1) CN107229674A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107958041A (zh) * 2017-11-23 2018-04-24 杭州电魂网络科技股份有限公司 数据存储方法、装置、服务器及可读存储介质
CN108228828A (zh) * 2018-01-02 2018-06-29 北京思空科技有限公司 数据表处理方法及装置
CN111506682A (zh) * 2020-01-13 2020-08-07 阿里巴巴集团控股有限公司 地图数据处理方法、数据查询方法、装置、电子设备
CN112363886A (zh) * 2020-11-10 2021-02-12 中国平安人寿保险股份有限公司 数据库监控方法、系统、终端及存储介质
CN115098035A (zh) * 2022-07-08 2022-09-23 天津华呈鼎丰科技有限公司 基于多端云计算集群的大数据存储方法及系统
CN116049096A (zh) * 2022-05-05 2023-05-02 荣耀终端有限公司 一种数据迁移方法、电子设备及存储介质
WO2023179040A1 (zh) * 2022-03-22 2023-09-28 华为云计算技术有限公司 一种节点切换方法及相关系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130290249A1 (en) * 2010-12-23 2013-10-31 Dwight Merriman Large distributed database clustering systems and methods
CN104216893A (zh) * 2013-05-31 2014-12-17 中国电信股份有限公司 多租户共享数据表的分区管理方法、服务器与系统
CN104794249A (zh) * 2015-05-15 2015-07-22 乐得科技有限公司 一种数据库的实现方法和设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130290249A1 (en) * 2010-12-23 2013-10-31 Dwight Merriman Large distributed database clustering systems and methods
CN104216893A (zh) * 2013-05-31 2014-12-17 中国电信股份有限公司 多租户共享数据表的分区管理方法、服务器与系统
CN104794249A (zh) * 2015-05-15 2015-07-22 乐得科技有限公司 一种数据库的实现方法和设备

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107958041A (zh) * 2017-11-23 2018-04-24 杭州电魂网络科技股份有限公司 数据存储方法、装置、服务器及可读存储介质
CN107958041B (zh) * 2017-11-23 2020-07-31 杭州电魂网络科技股份有限公司 数据存储方法、装置、服务器及可读存储介质
CN108228828A (zh) * 2018-01-02 2018-06-29 北京思空科技有限公司 数据表处理方法及装置
CN111506682A (zh) * 2020-01-13 2020-08-07 阿里巴巴集团控股有限公司 地图数据处理方法、数据查询方法、装置、电子设备
CN111506682B (zh) * 2020-01-13 2023-04-25 阿里巴巴集团控股有限公司 地图数据处理方法、数据查询方法、装置、电子设备
CN112363886A (zh) * 2020-11-10 2021-02-12 中国平安人寿保险股份有限公司 数据库监控方法、系统、终端及存储介质
CN112363886B (zh) * 2020-11-10 2023-07-25 中国平安人寿保险股份有限公司 数据库监控方法、系统、终端及存储介质
WO2023179040A1 (zh) * 2022-03-22 2023-09-28 华为云计算技术有限公司 一种节点切换方法及相关系统
CN116049096A (zh) * 2022-05-05 2023-05-02 荣耀终端有限公司 一种数据迁移方法、电子设备及存储介质
CN116049096B (zh) * 2022-05-05 2024-04-16 荣耀终端有限公司 一种数据迁移方法、电子设备及存储介质
CN115098035A (zh) * 2022-07-08 2022-09-23 天津华呈鼎丰科技有限公司 基于多端云计算集群的大数据存储方法及系统
CN115098035B (zh) * 2022-07-08 2022-12-13 四川银亿科技有限公司 基于多端云计算集群的大数据存储方法及系统

Similar Documents

Publication Publication Date Title
CN107229674A (zh) 一种数据迁移装置、服务器及方法
CN106202548B (zh) 数据存储方法、查找方法及装置
EP2924594A1 (en) Data encoding and corresponding data structure in a column-store database
CN103314377B (zh) 稀疏索引表组织
US9208186B2 (en) Indexing technique to deal with data skew
WO2016134580A1 (zh) 一种数据查询方法及装置
KR102005343B1 (ko) 분할 공간 기반의 공간 데이터 객체 질의처리장치 및 방법, 이를 기록한 기록매체
US10248622B2 (en) Variable virtual split dictionary for search optimization
CN105989015B (zh) 一种数据库扩容方法和装置以及访问数据库的方法和装置
CN107807932A (zh) 一种基于路径枚举的层级数据管理方法和系统
CN111625561A (zh) 一种数据查询方法及装置
CN114090695A (zh) 分布式数据库的查询优化的方法和装置
CN114860727A (zh) 拉链表更新方法及装置
KR20070107253A (ko) 다중레벨 dbms에서 질의 분류 컴포넌트의 설계 방법
CN104217032B (zh) 数据库维度的处理方法及装置
CN117407921A (zh) 基于必连和勿连约束的差分隐私直方图发布方法及系统
JPWO2012114402A1 (ja) データベース管理装置及びデータベース管理方法
CN108763381A (zh) 基于一致性哈希算法的分表方法及设备
CN114416884B (zh) 连接分区表的方法和装置
CN106980673A (zh) 内存数据库表索引更新方法及系统
CN106682107B (zh) 数据库表关联关系确定方法及装置
CN115328917A (zh) 一种查询方法、装置、设备及存储介质
CN110347886B (zh) 分布式父子关系元素查找方法
WO2021012211A1 (zh) 一种为数据建立索引的方法以及装置
CN113312331A (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: 20171003

RJ01 Rejection of invention patent application after publication