一种数据库表的管理方法及装置制造方法及图纸

技术编号:2917610 阅读:219 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种数据库表的管理方法及装置。本发明专利技术公开的方法包括:基于第一数据库表建立第二数据库表,在所述第二数据库表的特定字段上创建唯一索引或者主键,其中,所述第二数据库表中特定字段的数据是所述第一数据库表中要求满足唯一性的数据,所述唯一索引或者所述主键用于保证要求满足唯一性的数据的唯一性;通过所述唯一索引或者所述主键判断所述第二数据库表中是否有与向所述第二数据库表中插入的新的数据重复的数据;若有,则插入失败,流程结束,否则,将所述新的数据插入所述第二数据库表后,继续将所述新的数据插入所述第一数据库表。通过本发明专利技术,大大提高了数据插入数据库表的效率。

【技术实现步骤摘要】

本专利技术涉及数据库
,尤其涉及一种数据库表的管理方法及装置
技术介绍
对于记录数据非常多的数据库表,由于有查询需求,通常要根据此类数据库表的某些字段创建分区,以提高查询效率。例如,在数据库表:(id,account_no,account_log_id,transcode,operator,create_time)上根据create_time字段创建分区。由于业务的限制,该数据库表中account_log_id字段的数据必须满足唯一性,因此,要在该数据库表上创建唯一索引。由于account_log_id字段没有包含分区字段create_time,所以在该数据库表上创建的唯一索引为全局的唯一索引。但是,随着时间的推移,该数据库表记录的数据会越来越多,为了减轻存储数据的压力,需要将一部分数据迁移到历史库中。同时,具有该数据库表的系统通常要保证不间断运行,若进行在线数据迁移,该数据库表上全局的唯一索引会失效。因此,若要将一部分数据迁移到历史库中,必须关闭系统,手动对数据进行迁移。为了解决使具有唯一性要求数据的数据库表进行在线数据迁移的问题,现有解决方法为:以上述数据库表为例,删除其全局的唯一索引,并在该数据库表上创建一个普通索引,若该数据库表进行在线数据迁移,其上创建的普通索引不会失效。此时,为了保证该数据库表中account_log_id字段的数据的唯一性,在新的数据插入之前,需要在该数据库表中查看该新的数据是否满足唯一性,即在数据库表中是否有与该新的数据重复的数据,如果有,则拒绝将该新的数据插入数据库表中,否则,将该新的数据插入该数据库表中。专利技术人在研究过程中,发现上述现有解决方案至少存在以下问题:降低了向数据库表插入数据的效率。因为每插入一条新的数据就需要将该新数据与该数据库中已存的全部数据进行比对,如此加大了数据库的运作负担,同时降低了数据库插入数据的效率。-->
技术实现思路
有鉴于此,本专利技术提供了一种数据库表的管理方法及装置,以提高向数据库表插入数据的效率。一种数据库表的管理方法,包括:基于第一数据库表建立第二数据库表,在所述第二数据库表的特定字段上创建唯一索引或者主键,其中,所述第二数据库表中特定字段的数据是所述第一数据库表中要求满足唯一性的数据,所述唯一索引或者所述主键用于保证要求满足唯一性的数据的唯一性;通过所述唯一索引或者所述主键判断所述第二数据库表中是否有与向所述第二数据库表中插入的新的数据重复的数据;若有,则插入失败,流程结束,否则,将所述新的数据插入所述第二数据库表后,继续将所述新的数据插入所述第一数据库表。优选地,所述第二数据库表中字段列数不少于所述第一数据库表要求保证业务唯一性数据的列数。可选地,所述方法还包括:若所述第一数据库表有唯一索引,删除所述第一数据库表的唯一索引,以使所述第一数据库表进行在线数据迁移。可选地,所述方法还包括:若所述第一数据库表有查询需求,在所述第一数据库表上创建普通索引。可选地,所述方法还包括:若所述第二数据库表上特定字段的数据周期性发生重复,定期删除所述第二数据库表上特定字段的数据。一种数据库表的管理装置,所述装置包括:第一建立单元,用于基于第一数据库表建立第二数据库表,其中,所述第二数据库表中特定字段的数据是所述第一数据库表中需要保证唯一性的数-->据;创建单元,用于在所述第一建立单元建立的所述第二数据库表上的特定字段创建唯一索引或者主键,所述唯一索引或者所述主键用于保证要求满足唯一性的数据的唯一性;判断单元,用于通过所述创建单元创建的所述唯一索引或者所述主键,判断所述第一建立单元建立的所述第二数据库表中是否有与向所述第二数据库表中插入的新的数据重复的数据;插入单元,用于当所述判断单元判断出没有重复的数据时,将所述新的数据插入所述第二数据库表,然后,继续将所述新的数据插入所述第一数据库表。可选地,所述装置还包括:第一删除单元,用于若所述第一数据库表有唯一索引,删除所述第一数据库表的唯一索引,以使所述第一数据库表进行在线数据迁移。可选地,所述装置还包括:第二建立单元,用于若所述第一数据库表有查询需求,在所述第一数据库表上建立普通索引。可选地,所述装置还包括:第二删除单元,用于若所述第二数据库表上特定字段的数据周期性发生重复,定期删除所述第一建立单元建立的所述第二数据库表上特定字段的数据。可以看出,当向第一数据库表中插入新的数据时,不再执行查询这一步骤,而是直接将该新的数据插入第二数据库表,当判断出允许插入第二数据库表时,再将该新的数据直接插入第一数据库表。由于在实际情况中,新的数据与第一数据库表中的唯一性数据重复的几率很小,并且,第二数据库表中的数据量与第一数据库表相比非常小,第二数据库表通过唯一索引或者主-->键进行判断时,不用消耗太多时间,因此,往往可以快速将该新的数据插入第一数据库表,大大提高了数据插入的效率。附图说明图1为本专利技术方法流程图;图2为本专利技术具体实施例中创建唯一索引或者主键流程图;图3为本专利技术具体实施例中将新的数据插入第一数据库表流程图;图4为本专利技术装置结构图。具体实施方式为了使本专利技术的上述特征、优点更加明显易懂,下面结合具体实施方式对本专利技术进行详细说明。请参考图1,为本专利技术方法流程图,可以包括以下步骤:步骤101:基于第一数据库表建立第二数据库表,在所述第二数据库表的特定字段上创建唯一索引或者主键,其中,所述第二数据库表中特定字段的数据是所述第一数据库表中要求满足唯一性的数据,所述唯一索引或者所述主键用于保证要求满足唯一性的数据的唯一性;步骤102:通过所述唯一索引或者所述主键判断所述第二数据库表中是否有与向所述第二数据库表中插入的新的数据重复的数据;步骤103:若有,则插入失败,流程结束,否则,将所述新的数据插入所述第二数据库表后,继续将所述新的数据插入所述第一数据库表。下面结合一个具体实施例对图1所示各步骤进行详细说明。假设第一数据库表有以下字段:(id,account_no,account_log_id,transcode,operator,create_time),要求满足唯一性的数据所在的字段为account_log_id字段,并且该第一数据库表上创建有唯一索引。目前,该第一数据库表无法进行在线数据迁移,为了高效进行在线数据迁移,并且使account_log_id字段上的数据仍能满足唯一性要求,请参考图2,为本专利技术方法具体实施例中创建唯一索引或者主键流程图,可以包括以下步骤:-->步骤201:若第一数据库表有唯一索引,删除第一数据库表的唯一索引;如果第一数据库表有查询需求,可以在第一数据库表上创建一个普通索引。如果第一数据库表没有查询需求,则可以不再创建普通索引,以便节省普通索引所占的存储空间。普通索引为分区索引,只在第一数据库表的分区创建即可,因此,步骤201保证了第一数据库表中的数据可以进行在线数据迁移。步骤202:基于第一数据库表建立第二数据库表;第二数据库表仅有一列或者几列,用于存放第一数据库表中的要求满足唯一性的数据。在本具体实施例中,创建的第二数据库表有以下字段:(account_log_id),或者,创建的第二数据库表还可以为:(account_log_id,create_time)。步骤2本文档来自技高网
...

【技术保护点】
一种数据库表的管理方法,其特征在于,包括: 基于第一数据库表建立第二数据库表,在所述第二数据库表的特定字段上创建唯一索引或者主键,其中,所述第二数据库表中特定字段的数据是所述第一数据库表中要求满足唯一性的数据,所述唯一索引或者所述主键用于保证要求满足唯一性的数据的唯一性; 通过所述唯一索引或者所述主键判断所述第二数据库表中是否有与向所述第二数据库表中插入的新的数据重复的数据; 若有,则插入失败,流程结束,否则,将所述新的数据插入所述第二数据库表后,继续将所述新的数据插入所述第一数据库表。

【技术特征摘要】
1、一种数据库表的管理方法,其特征在于,包括:基于第一数据库表建立第二数据库表,在所述第二数据库表的特定字段上创建唯一索引或者主键,其中,所述第二数据库表中特定字段的数据是所述第一数据库表中要求满足唯一性的数据,所述唯一索引或者所述主键用于保证要求满足唯一性的数据的唯一性;通过所述唯一索引或者所述主键判断所述第二数据库表中是否有与向所述第二数据库表中插入的新的数据重复的数据;若有,则插入失败,流程结束,否则,将所述新的数据插入所述第二数据库表后,继续将所述新的数据插入所述第一数据库表。2、根据权利要求1所述的方法,其特征在于,所述第二数据库表中字段列数不少于所述第一数据库表要求保证业务唯一性数据的列数。3、根据权利要求1所述的方法,其特征在于,所述方法还包括:若所述第一数据库表有唯一索引,删除所述第一数据库表的唯一索引,以使所述第一数据库表进行在线数据迁移。4、根据权利要求1所述的方法,其特征在于,所述方法还包括:若所述第一数据库表有查询需求,在所述第一数据库表上创建普通索引。5、根据权利要求1所述的方法,其特征在于,所述方法还包括:若所述第二数据库表上特定字段的数据周期性发生重复,定期删除所述第二数据库表上特定字段的数据。6、一种数据库表的管理装置,其特征在于,所述装置...

【专利技术属性】
技术研发人员:于新林
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:VG[英属维尔京群岛]

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

1