数据库优化--局部数据迁移

来源:互联网 发布:淘宝卖家威胁我怎么办 编辑:程序博客网 时间:2024/06/05 01:54

    随着数据业务的日益增加,客户的服务器已经无法满足现有的要求。

    具体业务数据的不断增长,数据的记录数已经达到了千万级别。针对该表的操作,查询,更新,追加效率受到严重的影响,甚至影响到正常的工作。为此,我们将业务相关的几张表进行分析,并最终决定建立分区,并添加分区索引,实现数据库局部优化。

    这次的局部优化,主要思路是:根据组织结构,按照组织的4级分配,以第2级的组织ID,进行具体分区,以空间换取时间。分区的结果是,将数据按照一定规则,分开存储,同时在具体的分区上又有具体的索引。最终效果,可想而知,搜索效率提高几十倍,数据的维护也方便了很多,同时为今后的集群存储奠定了基础。

    系统优化过程中,最主要的工作是数据迁移,不仅要保证客户现有工作,还要保证数据的完整性。在方案中,除了实时数据备份外,还考虑到迁移失败,数据库的快速恢复工作。下边是针对具体实施过程生成的具体脚本。

     迁移过程如下:

    1,迁移表的导出,生成备份文件;重命名迁移表。

    2,创建准备分区所对应的表空间。

    3,创建最终迁移结果的新表,将其中最大的一个业务表,按照组织级别分成5个表,提高搜索性能。

    4,创建准备迁移工作的存储过程;然后,逐个执行存储过程,将原来数据迁移到新的表中。

    5,删除存储过程,清理临时过程。

    6,删除第1步中重命名的表。

    7,分析新创建的表,生成表的统计信息

     如果迁移失败,及时回复过程如下:

    8,删除新创建的分区表。

    9,创建原来存储过程使用的临时表;将重命名的表进行恢复;将备份的数据重新导入数据库。

    8和9中的恢复工作,可以根据迁移失败的情况,分三种情况组合进行恢复。

    a,如果没有删除重命名表,可以进行重命名表恢复。

    b,如果重名表已经删除,可以将备份数据导入数据库。

    c,根据其中一张表的迁移情况,可以进行重新导入;也可以,将其中新追加的字段删除。

    具体程序请参照如下URL:

        http://download.csdn.net/detail/attagain/4143975

原创粉丝点击