zoukankan      html  css  js  c++  java
  • 数据的水平分割

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

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

           2. 基础数据是不用做水平的分割的,当然假设是腾讯这样的系统,人员信息很大的还是要做分割的,我们的系统基础数据往往是很小的。业务流程数据要做水平分割。

           3. 分割的几种方式,如果有限制有30个局的数据:

              a. 分表

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

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

              b. 分区

                    长处:写代码简单;跨局统计方便。

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

             4. 终于的分割方式

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

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

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

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

  • 相关阅读:
    知识点小结
    体检套餐
    序列化和反序列化
    深入.NET平台的软件系统分层开发
    深入.NET平台和C#编程
    影院售票系统
    面向服务(接口)开发过程中常用的实体类数据复制解决方案
    EF优缺点的理解
    事务锁兼容性
    ASP.NET列表信息以Excel形式导出
  • 原文地址:https://www.cnblogs.com/yxwkf/p/4087386.html
Copyright © 2011-2022 走看看