一种数据库的数据处理方法及系统的制作方法

文档序号:6490271阅读:146来源:国知局
一种数据库的数据处理方法及系统的制作方法
【专利摘要】本发明公开一种数据库的数据处理方法,包括:配置以时间单位为粒度的分区策略;根据配置的分区策略,在物理层创建多个子文件,并与逻辑层的索引表相对应;根据配置的分区策略,将物理层的执行数据分别存储在创建的多个子文件中;本发明还提供一种数据库的数据处理系统。根据本发明的技术方案,能够提升数据库的使用性能。
【专利说明】一种数据库的数据处理方法及系统
【技术领域】
[0001]本发明涉及数据管理技术,尤其涉及一种数据库的数据处理方法及系统。
【背景技术】
[0002]目前,客户关系管理(CRM,Customer Relationship Management)系统的执行数据在逐年加倍增长,这些执行数据都存储于结构化查询语言(SQL, Structured QueryLanguage)服务器(Server)数据库的执行数据表中,由于执行数据表中的执行数据量巨大,对该执行数据表中的执行数据的增加、删除、修改、查询等操作的速度都很慢,导致涉及执行数据的业务的性能非常低,用户体验很差。
[0003]针对上述问题,MySQL数据库采用分表方式解决,如图1所示,对于MySQL数据库,逻辑层中存有多个索引表,如索引表I?索引表3,物理层中的主文件为实际存储执行数据的载体;通常,将位于物理层的保存执行数据的主文件分成多个主文件,使得逻辑层中的每个索引表在物理层中都有一个对应的主文件,如索引表I对应主文件1、索引表2对应主文件2,以此类推;这种方案需要在最初就设置好规则,并创建多个主文件,用于存储海量的执行数据,然后按照设置的规则去物理层中相应的主文件中获取执行数据。
[0004]MySQL数据库还可以采用图2所示方式解决,如图2所示,保存CRM系统的执行数据的SQL Server数据库中,逻辑层中仅存在一个索引表,物理层仅存在一个对应的主文件,该主文件保存所有CRM系统的执行数据;基于这种方式,由于CRM系统中执行数据需要被多个使用系统调用,如果将MySQL数据库的方案应用于保存CRM系统的执行数据的SQLServer数据库中,则需要将逻辑层中的索引表分为多个索引表,将物理层中的主文件分为多个主文件,那么,SQL Server数据库的逻辑层和物理层都将发生较大的改动,而且查询执行数据的方法也都要进行相应改动,带来的成本和使用风险较大。

【发明内容】

[0005]有鉴于此,本发明的主要目的在于提供一种数据库的数据处理方法及系统,能够提升数据库的使用性能。
[0006]为达到上述目的,本发明的技术方案是这样实现的:
[0007]—种数据库的数据处理方法,配置以时间单位为粒度的分区策略;该方法还包括:
[0008]根据配置的分区策略,在物理层创建多个子文件,并与逻辑层的索引表相对应;
[0009]根据配置的分区策略,将物理层的执行数据分别存储在创建的多个子文件中。
[0010]其中,该方法还包括:
[0011]根据配置的分区策略,自动创建新的子文件,将新的执行数据存储到所述新的子文件中。
[0012]其中,该方法还包括:
[0013]创建备份数据库,将历史数据迁移到所述备份数据库中进行保存。[0014]其中,所述配置以时间单位为粒度的分区策略为:
[0015]为逻辑层的索引表对应的物理层保存的执行数据配置以时间单位为粒度的分区策略;
[0016]所述以时间单位为粒度的分区策略是根据生成时间按照年月进行分区,或根据生成时间按照年日进行分区,或根据生成时间和ID按照年加ID尾数进行分区。
[0017]其中,该方法还包括:
[0018]在逻辑层的索引表中增加一列标志位Pflag,并根据分区策略确定所述Pflag保存的时间信息。
[0019]其中,所述根据配置的分区策略,在物理层创建多个子文件,并与逻辑层的索引表相对应,为:
[0020]根据配置的分区策略,确定在物理层创建子文件的数量;
[0021]根据确定的创建子文件的数量,在物理层为逻辑层的索引表创建与所述索引表对应的多个子文件。
[0022]其中,所述根据配置的分区策略,将物理层的执行数据分别存储在创建的多个子文件中为:
[0023]根据配置的分区策略、以及所述Pflag中保存的执行数据的生成时间,将原先存储在物理层已有的执行数据,再分别存储到物理层创建的多个子文件中;
[0024]将物理层中每个子文件与逻辑层的索引表关联。
[0025]一种数据库的数据处理系统,该系统包括:配置单元、创建单元、存储单元;其中,
[0026]配置单元,用于配置以时间单位为粒度的分区策略;
[0027]创建单元,用于根据配置单元配置的分区策略,在物理层创建多个子文件,并与逻辑层的索引表相对应;
[0028]存储单元,根据配置单元配置的分区策略,将物理层的执行数据,分别存储在创建的多个子文件中。
[0029]其中,所述创建单元,还用于根据配置单元配置的分区策略,自动创建新的子文件;
[0030]所述存储单元,还用于将新的执行数据存储到所述新的子文件中。
[0031]其中,所述创建单元,还用于创建备份数据库;
[0032]所述存储单元,还用于将历史数据迁移到所述备份数据库中进行保存。
[0033]其中,所述配置单元还包括分区策略配置子单元;
[0034]所述分区策略配置子单元,用于为逻辑层的索引表对应的物理层保存的执行数据配置以时间单位为粒度的分区策略;所述以时间单位为粒度的分区策略是根据生成时间按照年月进行分区,或根据生成时间按照年日进行分区,或根据生成时间和ID按照年加ID尾数进行分区。
[0035]其中,所述配置单元还包括Pflag配置子单元;
[0036]所述Pflag配置子单元,用于在逻辑层的索引表中增加一列Pflag,并根据分区策略确定所述Pflag保存的时间信息。
[0037]其中,所述配置单元还包括物理层子文件配置子单元;
[0038]所述物理层子文件配置子单元,用于根据配置的分区策略,确定在物理层创建子文件的数量;根据确定的创建子文件的数量,在物理层为逻辑层的索引表创建与所述索引表对应的多个子文件。
[0039]其中,所述配置单元还包括物理层子文件存储配置子单元;
[0040]所述物理层子文件存储配置子单元,用于根据配置的分区策略、以及所述Pflag中保存的执行数据的生成时间,将原先存储在物理层已有的执行数据,再分别存储到物理层创建的多个子文件中;将物理层中每个子文件与逻辑层的索引表关联。
[0041]本发明提供的数据库的数据处理方法及系统,配置以时间单位为粒度的分区策略;根据配置的分区策略,在物理层创建多个子文件,并与逻辑层的索引表相对应;根据配置的分区策略,将物理层的执行数据分别存储在创建的多个子文件中,如此,按照合理的分区策略将存储的数据分成多个存储区域,能够提高对数据库的数据表中执行数据的增加、删除、修改、查询等操作的速度,提升数据库使用性能,从而提高涉及执行数据的业务的性倉泛。
【专利附图】

【附图说明】
[0042]图1是现有技术中MySQL数据库中逻辑层和物理层的结构示意图;
[0043]图2是现有技术中SQL Server数据库中逻辑层和物理层的结构示意图;
[0044]图3是本发明实现数据库的数据处理方法的流程示意图;
[0045]图4是本发明中数据库中逻辑层和物理层的结构示意图;
[0046]图5是本发明实现数据库的数据处理系统的结构示意图;
[0047]图6是本发明实现数据库的数据处理系统的配置单元中子单元的示意图。
【具体实施方式】
[0048]本发明的基本思想是:配置以时间单位为粒度的分区策略;根据配置的分区策略,在物理层创建多个子文件,并与逻辑层的索引表相对应;根据配置的分区策略,将物理层的执行数据分别存储在创建的多个子文件中。
[0049]下面通过附图及具体实施例对本发明再做进一步的详细说明。
[0050]本发明提供一种数据库的数据处理方法,图3是本发明实现数据库的数据处理方法的流程示意图,如图3所示,该方法包括以下步骤:
[0051]步骤301,配置以时间单位为粒度的分区策略;
[0052]具体的,执行数据表中的执行数据为执行数据操作时生成的数据,比如交易数据,每条交易数据都有交易ID、交易时间、交易金额等多列信息;
[0053]为逻辑层的索引表对应的物理层保存的执行数据配置以时间单位为粒度的分区策略;所述以时间单位为粒度的分区策略可以是根据交易时间按照年月进行分区,或根据交易时间按照年日进行分区,或根据交易时间和交易ID按照年+ID尾数进行分区等;
[0054]配置分区策略后,需要在逻辑层的索引表中增加一列标志位Pflag,根据分区策略确定该Pflag保存的时间信息,例如,分区策略是根据生成时间比如交易时间按照年月进行分区时,该Pflag用于保存每条交易数据的交易时间的年月,即年份+月份。
[0055]步骤302,根据配置的分区策略,在物理层创建多个子文件,并与逻辑层的索引表相对应;[0056]具体的,如图4所示,根据配置的分区策略,可以确定在物理层创建子文件的数量,根据确定的数量,在物理层中为逻辑层的索引表创建对应的多个子文件;为了使得硬盘的IO性能达到最佳,可以将创建的多个子文件均匀分布在服务器的各个硬盘上;
[0057]例如,当执行数据操作时生成数据的生成时间具体为交易时间时,可以根据交易时间按照年月进行分区时,对于2010年分为201001?201012共12个区,对于2011年分为201101?201112共12个区,对于2012年分为201201?201212共12个区,对于2009年及2009年之前的执行数据,由于在业务使用的越来越少,因此可以不按照年月进行分区,而按照年进行分区,即存在I个分区,因此,对于2009年至2012年的执行数据,可以在物理层创建37个子文件;根据交易时间按照年日进行分区时,2010年可分为201001、201002、......,201030,201031 共 31 个区。
[0058]步骤303,根据配置的分区策略,将物理层的执行数据分别存储在创建的多个子文件中;
[0059]具体的,根据配置的分区策略、以及Pflag中保存的执行数据的交易时间,将原先存储在物理层主文件中已有的执行数据,再分别存储到物理层创建的多个子文件中;例如,分区策略为根据交易时间按照年月进行分区时,根据Pflag中保存的执行数据的交易时间的年月,将2009年至2012年的执行数据按照年月的分区策略,分别存储到创建的37个子文件中,每个子文件中都保存有一年中某一月份的所有执行数据,如此,每个子文件中的执行数据相对均匀,至少同一年份的子文件中的执行数据相对均匀,划分粒度较细,而且交易时间也是数据库中的常用字段;
[0060]在将执行数据存储到物理层的多个子文件后,将物理层中每个子文件都与逻辑层的索引表关联,取消物理层中主文件与索引表的关联,实现用多个子文件代替原来一个主文件的方式;如此,在进行分区后,通过逻辑层的索引表可以在每个创建的子文件中查询需要的执行数据;此外,还可以在数据库运行一段时间后,删除原先的主文件。
[0061]进一步的,可以根据配置的分区策略,自动创建新的子文件,将新的执行数据存储到所述新的子文件中;
[0062]具体的,所述新的子文件可以是下一个月的子文件、下一年每个月的子文件;所述新的执行数据可以是下一个月的执行数据、下一年某个月的执行数据。举例来说,如果今年为2012年,创建的子文件只到2012年12月,因此,可选的,还可以配置一个自动创建程序,该自动创建程序可以自动运行,例如在每年的12月15日定时自动运行,自动创建程序根据配置的分区策略,在物理层中一次性创建下一年的所有子文件,创建的下一年的子文件将保存下一年新产生的执行数据;例如,如果分区策略为根据交易时间按照年月进行分区,则该自动创建程序可以在2012年12月15日自动运行,在物理层中一次性创建2013年的12
个子文件201301、201302、......>201312 ;如此,物理层中对应2013年的12个子文件将分
别存储2013年每个月的执行数据;自动创建程序在完成下一年所有子文件的创建操作后,通过邮件通知数据库管理员;如此,解决根据分区策略处理数据库中数据的扩展性问题和可持续性问题。
[0063]进一步的,还可以创建备份数据库,将历史数据迁移到备份数据库中进行保存;
[0064]具体的,可选的,在物理层中,还可以再创建一个与执行数据表的结构相同的备份数据表且可以存储在备份数据库中,随着时间的推移,根据业务的需要,可以选择性的将不再使用的执行数据迁移到创建的备份数据表中进行存储,例如2013年年初时,不再用到2009年的执行数据,则将200900的子文件迁移到备份数据表;2013年年底时,不再使用2010年第一季度的数据,则将201001的子文件、201002的子文件和201003的子文件迁移到备份数据表进行存储,从而解决历史数据过于冗余的问题;而且迁移的子文件中的执行数据属于物理层的操作,即使有上千万的数据量,数据库也可以在毫秒级完成,效率非常闻。
[0065]利用本发明提供的上述方案,将物理层中的主文件用多个子文件进行替代,实现物理层中执行数据的分区存储,不需要改变逻辑层,因而不需要改变执行数据表的使用方法,而且经过验证,对于查询同一个执行数据,利用现有方法,将需要消耗62160毫秒的时间,利用本发明的技术方案,仅需要14953毫秒的时间,此外,执行数据的更新、插入和删除等操作的速度也明显提高,对于执行数据的使用起到了明显的优化作用。
[0066]需要说明的是,本发明的技术方案可以应用于MySQL数据库、SQL Server数据库、甲骨文数据库(Oracel)。
[0067]为实现上述方法,本发明还提供一种数据库的数据处理系统,图5是本发明实现数据库的数据处理系统的结构示意图,如图5所示,该系统包括:配置单元50、创建单元60、存储单元70 ;其中,
[0068]配置单元50,用于配置以时间单位为粒度的分区策略;
[0069]创建单元60,用于根据配置单元50配置的分区策略,在物理层创建多个子文件,并与逻辑层的索引表相对应;
[0070]存储单元70,根据配置单元配置的分区策略,将物理层的执行数据,分别存储在创建的多个子文件中。
[0071]其中,所述创建单元60,还用于根据配置单元50配置的分区策略,自动创建新的子文件;
[0072]所述存储单元70,还用于将新的执行数据存储到所述新的子文件中。
[0073]这里,所述新的子文件可以是下一个月的子文件、下一年每个月的子文件;所述新的执行数据可以是下一个月的执行数据、下一年某个月的执行数据。
[0074]所述创建单元60,还用于创建备份数据库;
[0075]所述存储单元70,还用于将历史数据迁移到所述备份数据库中进行保存。
[0076]具体的,所述配置单元50配置以时间单位为粒度的分区策略为:为逻辑层的索引表对应的物理层保存的执行数据配置以时间单位为粒度的分区策略;所述以时间单位为粒度的分区策略是根据生成时间比如交易时间按照年月进行分区,或根据交易时间按照年日进行分区,或根据交易时间和交易ID按照年加ID尾数进行分区。
[0077]所述创建单元60根据配置的分区策略,为逻辑层的索引表在物理层创建多个子文件为:根据配置的分区策略,确定在物理层创建子文件的数量;根据确定的创建子文件的数量,在物理层为逻辑层的索引表创建对应的多个子文件。
[0078]所述存储单元70根据配置的分区策略,将物理层的执行数据分别存储在创建的多个子文件中为:根据配置的分区策略,确定在物理层创建子文件的数量;根据确定的创建子文件的数量,在物理层为逻辑层的索引表创建对应的多个子文件。
[0079]配置单元50还可以包括以下子单元中的一种或多种的组合,如图6所示为配置单元50包括以下所有子单元的具体实例,包括分区策略配置子单元501、Pflag配置子单元502、物理层子文件配置子单元503和物理层子文件存储配置子单元504。
[0080]分区策略配置子单元501,用于为逻辑层的索引表对应的物理层保存的执行数据配置以时间单位为粒度的分区策略;所述以时间单位为粒度的分区策略是根据生成时间按照年月进行分区,或根据生成时间按照年日进行分区,或根据生成时间和ID按照年加ID尾数进行分区。
[0081]Pflag配置子单元502,用于在逻辑层的索引表中增加一列Pflag,并根据分区策略确定所述Pflag保存的时间信息。
[0082]物理层子文件配置子单元503,用于根据配置的分区策略,确定在物理层创建子文件的数量;根据确定的创建子文件的数量,在物理层为逻辑层的索引表创建与所述索引表对应的多个子文件。
[0083]物理层子文件存储配置子单元504,用于根据配置的分区策略、以及所述Pflag中保存的执行数据的生成时间,将原先存储在物理层已有的执行数据,再分别存储到物理层创建的多个子文件中;将物理层中每个子文件与逻辑层的索引表关联。
[0084]以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种数据库的数据处理方法,其特征在于,配置以时间单位为粒度的分区策略;该方法还包括: 根据配置的分区策略,在物理层创建多个子文件,并与逻辑层的索引表相对应; 根据配置的分区策略,将物理层的执行数据分别存储在创建的多个子文件中。
2.根据权利要求1所述的方法,其特征在于,该方法还包括: 根据配置的分区策略,自动创建新的子文件,将新的执行数据存储到所述新的子文件中。
3.根据权利要求1或2所述的方法,其特征在于,该方法还包括: 创建备份数据库,将历史数据迁移到所述备份数据库中进行保存。
4.根据权利要求1所述的方法,其特征在于,所述配置以时间单位为粒度的分区策略为: 为逻辑层的索引表对应的物理层保存的执行数据配置以时间单位为粒度的分区策略; 所述以时间单位为粒度的分区策略是根据生成时间按照年月进行分区,或根据生成时间按照年日进行分区,或根据生成时间和ID按照年加ID尾数进行分区。
5.根据权利要求4所述的方法,其特征在于,该方法还包括: 在逻辑层的索引表中增加一列标志位Pflag,并根据分区策略确定所述Pflag保存的时间信息。
6.根据权利要求1所述的方法,其特征在于,所述根据配置的分区策略,在物理层创建多个子文件,并与逻辑层的索引表相对应,为: 根据配置的分区策略,确定在物理层创建子文件的数量; 根据确定的创建子文件的数量,在物理层为逻辑层的索引表创建与所述索引表对应的多个子文件。
7.根据权利要求4所述的方法,其特征在于,所述根据配置的分区策略,将物理层的执行数据分别存储在创建的多个子文件中为: 根据配置的分区策略、以及所述Pflag中保存的执行数据的生成时间,将原先存储在物理层已有的执行数据,再分别存储到物理层创建的多个子文件中; 将物理层中每个子文件与逻辑层的索引表关联。
8.一种数据库的数据处理系统,其特征在于,该系统包括:配置单元、创建单元、存储单元;其中, 配置单元,用于配置以时间单位为粒度的分区策略; 创建单元,用于根据配置单元配置的分区策略,在物理层创建多个子文件,并与逻辑层的索引表相对应; 存储单元,根据配置单元配置的分区策略,将物理层的执行数据,分别存储在创建的多个子文件中。
9.根据权利要求8所述的系统,其特征在于, 所述创建单元,还用于根据配置单元配置的分区策略,自动创建新的子文件; 所述存储单元,还用于将新的执行数据存储到所述新的子文件中。
10.根据权利要求8或9所述的系统,其特征在于,所述创建单元,还用于创建备份数据库; 所述存储单元,还用于将历史数据迁移到所述备份数据库中进行保存。
11.根据权利要求8所述的系统,其特征在于,所述配置单元还包括分区策略配置子单元; 所述分区策略配置子单元,用于为逻辑层的索引表对应的物理层保存的执行数据配置以时间单位为粒度的分区策略;所述以时间单位为粒度的分区策略是根据生成时间按照年月进行分区,或根据生成时间按照年日进行分区,或根据生成时间和ID按照年加ID尾数进行分区。
12.根据权利要求11所述的系统,其特征在于,所述配置单元还包括Pflag配置子单元; 所述Pflag配置子单元,用于在逻辑层的索引表中增加一列Pflag,并根据分区策略确定所述Pflag保存的时间信息。
13.根据权利要求8所述的系统,其特征在于,所述配置单元还包括物理层子文件配置子单元; 所述物理层子文件配置子单元,用于根据配置的分区策略,确定在物理层创建子文件的数量;根据确定的创建子文件的数量,在物理层为逻辑层的索引表创建与所述索引表对应的多个子文件。
14.根据权利要求11所述的系统,其特征在于,所述配置单元还包括物理层子文件存储配置子单元; 所述物理层子文件存储配置子单元,用于根据配置的分区策略、以及所述Pflag中保存的执行数据的生成时间,将原先存储在物理层已有的执行数据,再分别存储到物理层创建的多个子文件中;将物理层中每个子文件与逻辑层的索引表关联。
【文档编号】G06F17/30GK103793382SQ201210418832
【公开日】2014年5月14日 申请日期:2012年10月26日 优先权日:2012年10月26日
【发明者】牛鸣 申请人:腾讯科技(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1