随着数据业务的日益增加,客户的服务器已经无法满足现有的要求。
具体业务数据的不断增长,数据的记录数已经达到了千万级别。针对该表的操作,查询,更新,追加效率受到严重的影响,甚至影响到正常的工作。为此,我们将业务相关的几张表进行分析,并最终决定建立分区,并添加分区索引,实现数据库局部优化。
这次的局部优化,主要思路是:根据组织结构,按照组织的4级分配,以第2级的组织ID,进行具体分区,以空间换取时间。分区的结果是,将数据按照一定规则,分开存储,同时在具体的分区上又有具体的索引。最终效果,可想而知,搜索效率提高几十倍,数据的维护也方便了很多,同时为今后的集群存储奠定了基础。
系统优化过程中,最主要的工作是数据迁移,不仅要保证客户现有工作,还要保证数据的完整性。在方案中,除了实时数据备份外,还考虑到迁移失败,数据库的快速恢复工作。下边是针对具体实施过程生成的具体脚本。
迁移过程如下:
1,迁移表的导出,生成备份文件;重命名迁移表。
2,创建准备分区所对应的表空间。
3,创建最终迁移结果的新表,将其中最大的一个业务表,按照组织级别分成5个表,提高搜索性能。
4,创建准备迁移工作的存储过程;然后,逐个执行存储过程,将原来数据迁移到新的表中。
5,删除存储过程,清理临时过程。
6,删除第1步中重命