用于数据库表的数据处理方法和装置制造方法

文档序号:6519585阅读:291来源:国知局
用于数据库表的数据处理方法和装置制造方法
【专利摘要】本发明公开了一种用于数据库表的数据处理方法和装置。该方法包括获取与数据库表结构一致的临时表;以及通过切换操作将数据库表的数据切换到临时表中。通过本发明,能够达到提高数据表中的数据处理效率的效果。
【专利说明】用于数据库表的数据处理方法和装置
【技术领域】
[0001]本发明涉及数据处理领域,具体而言,涉及一种用于数据库表的数据处理方法和
>J-U ρ?α装直。
【背景技术】
[0002]在删除一张数据表的数据时,有几种常用的方案:
[0003]Delete (删除)数据,数据库会逐条删除表中的数据,在删除数据时会记录相应的日志。
[0004]Truncate (截断)表,会直接截断整表,不会记录日志,但要求没有其他表的外键与该表关联。
[0005]Drop (移除)表,会直接把整表删除。
[0006]Delete数据由于在记录日志时会有大量的读写操作,效率很低。Truncate表在存在外键关联时无法使用。而Drop表在需要表保留,仅删除数据时不适用。
[0007]针对现有技术对数据库表中的数据处理效率比较低的问题,目前尚未提出有效的解决方案。
【发明内容】

[0008]本发明的主要目的在于提供一种用于数据库表的数据处理方法和装置,以解决现有技术对数据库表中的数据处理效率比较低问题。
[0009]为了实现上述目的,根据本发明的一个方面,提供了一种数据库表的数据处理方法。根据本发明的数据库表的数据处理方法包括:获取与数据库表结构一致的临时表;以及通过切换操作将数据库表的数据切换到临时表中。
[0010]进一步地,通过切换操作将数据库表的数据切换到临时表中包括:判断数据库表是否有分区;如果判断出数据库表有分区,则通过切换操作将数据库表的分区从数据库表中转移至临时表中;以及如果判断出数据库表没有分区,则通过切换操作直接对数据库表和临时表中的数据进行交换。
[0011]进一步地,通过切换操作将数据库表的数据切换到临时表中包括:通过切换操作修改数据库表中元数据的配置信息将数据库表的数据切换到临时表中。
[0012]进一步地,在获取与数据库表结构一致的临时表之前,方法还包括:根据数据库表创建临时表。
[0013]进一步地,通过切换操作将数据库表的数据切换到临时表中包括:删除数据库表中的数据,在通过切换操作将数据库表的数据切换到临时表中之后,方法还包括:对临时表执行移除操作。
[0014]为了实现上述目的,根据本发明的另一方面,提供了一种数据库表的数据处理装置。根据本发明的数据库表的数据处理装置包括:判断模块,用于判断数据库表是否有分区;转移模块,用于在判断出数据库表有分区时,通过切换操作将数据库表的分区从数据库表中转移至临时表中;以及交换模块,用于在判断出数据库表没有分区时,则通过切换操作直接对数据库表和临时表中的数据进行交换。
[0015]进一步地,转移模块还用于通过切换操作修改数据库表中元数据的配置信息将数据库表的数据切换到临时表中。
[0016]进一步地,数据处理装置还包括:创建单元,用于在获取与数据库表结构一致的临时表之前,根据数据库表创建临时表。
[0017]进一步地,数据处理装置包括:切换单元还包括删除模块,用于删除数据库表中的数据;以及移除单元,用于在通过切换操作将数据库表的数据切换到临时表中之后,对临时表执行移除操作。
[0018]通过本发明,采用获取与数据库表结构一致的临时表;以及通过切换操作将所述数据库表的数据切换到所述临时表中,解决了现有技术中对数据库表中的数据处理效率比较低的问题,进而达到了提高数据表中的数据处理效率的效果。
【专利附图】

【附图说明】
[0019]构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0020]图1是根据本发明第一实施例的数据库表的数据处理方法的流程图;
[0021]图2是根据本发明第二实施例的数据库表的数据处理方法的流程图;
[0022]图3是根据本发明第一实施例的数据库表的数据处理装置的示意图;以及
[0023]图4是根据本发明第二实施例的数据库表的数据处理装置的示意图。
【具体实施方式】
[0024]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
[0025]本发明实施例提供了一种数据表的数据处理方法,该方法可以运行在计算机程序上。
[0026]图1是根据本发明第一实施例的数据库表的数据处理方法的流程图。如图所示,该数据库表的数据处理方法包括如下步骤:
[0027]步骤S101,获取与数据库表结构一致的临时表。
[0028]数据表的结构包括字段名称、类型等,获取与数据表结构一致的临时表包括获取与数据库表结构的字段名称、类型一致、索引一致、表压缩方式一致和主键约束一致,其中,索引包括聚簇索引和非聚簇索引。
[0029]为了保证在数据处理过程中不出错,建立与数据库表结构一致的临时表。其中,被处理的数据库表中存储了需要被处理的数据,临时表可以存储数据库表中需要被处理的数据。
[0030]步骤S102,通过切换操作将数据库表的数据切换到临时表中。切换操作可以针对数据库表中的所有数据,也可以针对数据库表中的部分数据。所谓切换操作就是将数据库表中的数据移到临时表中,可以同时移除多条数据或者数据库表数据的整体移除,但是,不记录日志,不涉及数据读写10,在需要保留数据库表结构的时候只对数据库表中的数据进行处理。
[0031]通过以上步骤,可以对数据库表中的数据进行批量切换处理,提高了数据处理的效率,同时能够保存数据库表的表结构。
[0032]图2是根据本发明第二实施例的数据库表的数据处理方法的流程图。如图所示,该数据库表的数据处理方法包括如下步骤:
[0033]步骤S201,获取与数据库表结构一致的临时表。
[0034]数据表的结构包括字段名称、类型等,获取与数据表结构一致的临时表包括获取与数据库表结构的字段名称、类型一致、索引一致、表压缩方式一致和主键约束一致,其中,索引包括聚簇索引和非聚簇索引。
[0035]为了保证在数据处理过程中不出错,建立与数据库表结构一致的临时表。其中,被处理的数据库表中存储了需要被处理的数据,临时表可以存储数据库表中需要被处理的数据。
[0036]步骤S202,判断数据库表是否有分区。数据库表分区存储数据能够提高数据库的性能,因此,在较复杂的数据库表中往往存在分区,如果数据库表有分区,需要先确定需要处理的数据处于哪个分区中,并对该分区中的数据进行处理。
[0037]被分区存储的数据在物理上是多个文件,但逻辑上仍然是一个表,对表的操作也与分区之前一样,因此,本发明实施例提供的方法也可以应用在被分区后的数据库表中。无论是被分区的数据库表还是没有被分区的数据库表中,都可以进行数据的插入、删除、查询和更新等操作。当然,本发明实施例更关心的是数据库表数据的是删除。
[0038]步骤S203,如果判断出数据库表有分区,则通过切换操作将数据库表的分区从数据库表中转移至临时表中。
[0039]在对数据库表中的数据进行处理之前,首先判断数据库表是否有分区,如果数据库表有分区,则对需要进行数据处理的分区的数据转移至临时表中。在转移的过程中,只转移需要处理的分区的数据,对该分区对应的数据表结构不作更改。同时,空白的临时表中的空白内容切换到相应的数据库表中,从而实现了数据库表的切换。
[0040]步骤S204,如果判断出数据库表没有分区,则通过切换操作直接对数据库表和临时表中的数据进行交换。如果判断出数据库表中没有分区,可以直接对数据库表中的所有数据进行切换操作。将数据库表中的数据与临时表相应的空白数据进行交换,从而实现了数据的切换。
[0041]在上述过程中,由于仅仅是数据的交换,所以在很短的时间就能完成,例如I秒钟。因此,在对数据的删除时,提高了数据删除的效率。同时,由于在临时表中存储有数据库表中的数据,在误删除的情况下可以对数据进行恢复。
[0042]进一步地,通过切换操作将数据库表的数据切换到临时表中包括:通过切换操作修改数据库表中元数据的配置信息将数据库表的数据切换到临时表中。
[0043]通过切换操作,将数据库表中的元数据通过原子操作切换到临时表中,即将数据库表中的元数据切换到临时表中,元数据在数据库表中相应的位置为空,也就是将数据库表中需要删除的内容删除掉,同时保留数据库表的结构,而将内容删除。
[0044]进一步地,在获取与数据库表结构一致的临时表之前,根据数据库表创建临时表。
[0045]创建的临时表与数据库表的结构一致,包括字段名称、类型一致、索引一致、表压缩方式一致和主键约束一致,其中,索引包括聚簇索引和非聚簇索引。
[0046]进一步地,通过切换操作将数据库表的数据切换到临时表中包括:删除数据库表中的数据,在通过切换操作将数据库表的数据切换到临时表中之后,对临时表执行移除操作。
[0047]建立的临时表结构与数据库表一致,但是其内容为空,在将数据库表的数据切换到临时表的同时,临时表的内容页切换到数据库表中,数据库表中相应位置的内容为空,即数据库表中的数据被删除。如果切换到临时表中的数据不再需要保留,只需将临时表直接删除,从而实现了将数据库表中的内容删除,提高了对数据库表中数据处理效率。
[0048]本发明还提供了 一种数据库表的数据处理装置。
[0049]图3是根据本发明第一实施例的数据库表的数据处理装置的示意图。如图所示,该装置包括获取单元10和切换单元20。
[0050]获取单元10用于获取与数据库表结构一致的临时表。数据表的结构包括字段名称、类型等,获取与数据表结构一致的临时表包括获取与数据库表结构的字段名称、类型一致、索引一致、表压缩方式一致和主键约束一致,其中,索引包括聚簇索引和非聚簇索引。
[0051]为了保证在数据处理过程中不出错,建立与数据库表结构一致的临时表。其中,被处理的数据库表中存储了需要被处理的数据,临时表可以存储数据库表中需要被处理的数据。
[0052]切换单元20用于通过切换操作将数据库表的数据切换到临时表中。
[0053]切换操作可以针对数据库表中的所有数据,也可以针对数据库表中的部分数据。所谓切换操作就是将数据库表中的数据移到临时表中,可以同时移除多条数据或者数据库表数据的整体移除,但是,不记录日志,不涉及数据读写10,需要保留数据库表结构的时候只对数据库表中的数据进行处理。
[0054]通过以上装置,可以对数据库表中的数据进行批量切换处理,提高了数据处理的效率,同时能够保存数据库表的表结构。
[0055]图4是根据本发明第二实施例的数据库表的数据处理装置的示意图。如图所示,该数据库表的数据处理装置包括获取单元10和切换单元20,其中,切换单元20包括判断模块201、转移模块202和交换模块203。
[0056]判断模块201用于判断数据库表是否有分区。数据库表分区存储数据能够提高数据库的性能,因此,在较复杂的数据库表中往往存在分区,如果数据库表有分区,需要先确定需要处理的数据处于哪个分区中,并对该分区中的数据进行处理。
[0057]被分区存储的数据在物理上是多个文件,但逻辑上仍然是一个表,对表的操作也与分区之前一样,因此,本发明实施例提供的方法也可以应用在被分区后的数据库表中。无论是被分区的数据库表还是没有被分区的数据库表中,都可以进行数据的插入、删除、查询和更新等操作。当然,本发明实施例更关心的是数据库表数据的是删除。
[0058]转移模块202用于在判断出数据库表有分区时,通过切换操作将数据库表的分区从数据库表中转移至临时表中。
[0059]在对数据库表中的数据进行处理之前,首先判断数据库表是否有分区,如果数据库表有分区,则对需要进行数据处理的分区的数据转移至临时表中。在转移的过程中,只转移需要处理的分区的数据,对该分区对应的数据表结构不作更改。同时,空白的临时表中的空白内容切换到相应的数据库表中,从而实现了数据库表的切换。
[0060]交换模块203用于在判断出数据库表没有分区时,则通过切换操作直接对数据库表和临时表中的数据进行交换。如果判断出数据库表中没有分区,可以直接对数据库表中的所有数据进行切换操作。将数据库表中的数据与临时表相应的空白数据进行交换,从而实现了数据的切换。
[0061]在上述过程中,由于仅仅是数据的交换,所以在很短的时间就能完成,例如I秒钟。因此,在对数据的删除时,提高了数据删除的效率。同时,由于在临时表中存储有数据库表中的数据,在误删除的情况下可以对数据进行恢复。
[0062]进一步地,转移模块202还用于通过切换操作修改数据库表中元数据的配置信息将数据库表的数据切换到临时表中。
[0063]通过切换操作,将数据库表中的元数据通过原子操作切换到临时表中,即将数据库表中的元数据切换到临时表中,元数据在数据库表中相应的位置为空,也就是将数据库表中需要删除的内容删除掉,同时保留数据库表的结构,而将内容删除。
[0064]进一步地,该数据处理装置还包括创建单元,该创建单元用于在获取与数据库表结构一致的临时表之前,根据数据库表创建临时表。
[0065]创建的临时表与数据库表的结构一致,包括字段名称、类型一致、索引一致、表压缩方式一致和主键约束一致,其中,索引包括聚簇索引和非聚簇索引。
[0066]进一步地,数据处理装置的切换单元20还包括删除模块,该删除模块用于删除数据库表中的数据,还包括移除单元,用于在通过切换操作将数据库表的数据切换到临时表中之后,对临时表执行移除操作。
[0067]建立的临时表结构与数据库表一致,但是其内容为空,在将数据库表的数据切换到临时表的同时,临时表的内容页切换到数据库表中,数据库表中相应位置的内容为空,即数据库表中的数据被删除。如果切换到临时表中的数据不再需要保留,只需将临时表直接删除,从而实现了将数据库表中的内容删除,提高了对数据库表中数据处理效率。
[0068]显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0069]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种用于数据库表的数据处理方法,其特征在于,包括: 获取与数据库表结构一致的临时表;以及 通过切换操作将所述数据库表的数据切换到所述临时表中。
2.根据权利要求1所述的数据处理方法,其特征在于,通过切换操作将所述数据库表的数据切换到所述临时表中包括: 判断所述数据库表是否有分区; 如果判断出所述数据库表有分区,则通过所述切换操作将所述数据库表的分区从所述数据库表中转移至所述临时表中;以及 如果判断出所述数据库表没有分区,则通过所述切换操作直接对所述数据库表和所述临时表中的数据进行交换。
3.根据权利要求1所述的数据处理方法,其特征在于,通过切换操作将所述数据库表的数据切换到所述临时表中包括: 通过所述切换操作修改所述数据库表中元数据的配置信息将所述数据库表的数据切换到所述临时表中。
4.根据权利要求1所述的数据处理方法,其特征在于,在获取与数据库表结构一致的临时表之前,所述方法还包括: 根据所述数据库表创建所述临时表。
5.根据权利要求1所述的数据处理方法,其特征在于,通过切换操作将所述数据库表的数据切换到所述临时表中包括:删除所述数据库表中的数据,在通过切换操作将所述数据库表的数据切换到所述临时表中之后,所述方法还包括: 对所述临时表执行移除操作。
6.一种用于数据库表的数据处理装置,其特征在于,包括: 获取单元,用于获取与数据库表结构一致的临时表;以及 切换单元,用于通过切换操作将所述数据库表的数据切换到所述临时表中。
7.根据权利要求6所述的数据处理装置,其特征在于,所述切换单元包括: 判断模块,用于判断所述数据库表是否有分区; 转移模块,用于在判断出所述数据库表有分区时,通过所述切换操作将所述数据库表的分区从所述数据库表中转移至所述临时表中;以及 交换模块,用于在判断出所述数据库表没有分区时,则通过所述切换操作直接对所述数据库表和所述临时表中的数据进行交换。
8.根据权利要求6所述的数据处理装置,其特征在于,所述转移模块还用于通过所述切换操作修改所述数据库表中元数据的配置信息将所述数据库表的数据切换到所述临时表中。
9.根据权利要求6所述的数据处理装置,其特征在于,所述数据处理装置还包括: 创建单元,用于在获取与数据库表结构一致的临时表之前,根据所述数据库表创建所述临时表。
10.根据权利要求6所述的数据处理装置,其特征在于,所述数据处理装置包括: 所述切换单元还包括删除模块,用于删除所述数据库表中的数据;以及 移除单元,用于在通过切换操作将所述数据库表的数据切换到所述临时表中之后,对所述临时表执行移除操作。·
【文档编号】G06F17/30GK103593447SQ201310577207
【公开日】2014年2月19日 申请日期:2013年11月18日 优先权日:2013年11月18日
【发明者】吴充 申请人:北京国双科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1