码迷,mamicode.com
首页 > 其他好文 > 详细

数据的水平切割

时间:2014-05-04 18:33:53      阅读:368      评论:0      收藏:0      [点我收藏+]

标签:style   数据   代码   数据库   mil   size   

       早前公司有个大系统没有做数据的水平切割,导致后续的性能优化不能做到最佳,有些功能优化到7s,8s就无法继续了。这个大系统以前是分21个点部署,然后进行了大集中,只部署了一个点。

       1. 在做数据的水平分割之前一定要理解系统的业务。我的系统是MIS,数据可以分为两类:一类是基础数据,一类是业务流程数据。基础数据的理解就是支撑其他业务流转的数据,如部门、人员、权限、资源库等。业务流程数据就是业务单据,如报销流程等。

       2. 基础数据是不用做水平的切割的,当然如果是腾讯这种系统,人员信息非常大的还是要做切割的,我们的系统基础数据往往是非常小的。业务流程数据要做水平切割。

       3. 切割的几种方式,假设有限制有30个局的数据:

          a. 分表

                优点:安全性更高,MIS系统上线后实施免不了要在后台改数据,万一少写一个条件就悲剧了。对开发人员的数据库技能要求低一些,在1千万的表上操作比在一亿的表上操作要简单。

                缺点:做查询的时候要组装;在跨局做统计的时候实现会复杂一些。DDL操作要写很多脚本。

          b. 分区

                优点:写代码简单;跨局统计方便。

                缺点:一定要确保带分区条件,对开发人员的数据库操作技能更高。DDL(加字段,修改字段类型或长度,加索引都是DDL)会比较困难,如果表上有操作,DDL都会失败。跟分表的不同,

         4. 最终的切割方式

               分表:数据量巨大的表,安全性高的表。

               单分区非重点模块,数据量不大,无需做过期化

               复合分区重点模块,需要做过期化的模块

               不做分区和分表:基础数据。

数据的水平切割,布布扣,bubuko.com

数据的水平切割

标签:style   数据   代码   数据库   mil   size   

原文地址:http://blog.csdn.net/stevendbaguo/article/details/24966643

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!