分库分表原则读完《分库分表基础》,对于分库分表有了一个概念性的认识,数据库表可以分成两大类:一类是公共表,另一类是业务表。业务表定义业务表很容易识别, 随着业务开展,表的数据量会越来越大,一个数据库很难存放的下,我们需要对于数据库和表的分布进行管理控制,引入节点定位服务, 以满足业务需求。公共表的特点定义在分片的情况下,当业务表因为规模而进行分片以后,业务表与这些附属的字典表之间的关联,就成了比较棘手的问题,考虑到字典表具有以下几个特性: ?变动不频繁?数据量总体变化不大?数据规模不大,很少有超过数十万条记录。鉴于此,系统需要定义了一种特殊的表,称之为“全局表”,全局表可通过小表广播同步到个系统,全局表具有以下特性: ?全局表的插入、更新操作会实时在所有节点上执行,保持各个分片的数据一致性?全局表的查询操作,只从一个节点获取?全局表可以跟任何一个表进行 JOIN 操作公共表小表广播公共表在初始化时,需要初始化到每个分库上面,以后的变化都需要把主库的数据同步到每一个分库上面去,形成小表广播机制。这样每分库上的表都可以有全量的公共表。业务表分库分表原则分库分表是对于业务表而言的,现阶段考虑的是纵向切分,分库分表是两个不同的概念。分库原则(1)租户间的数据,考虑通过分库的形式分开,将不同的租户的数据放到不同的库中。(2)大的租户的客户数据可能涉及到一个库放不下,可以考虑通过组织结构进行分库,分库原则为单张表的数据能够承受。(3)小租户可能数据太小,可能涉及到将多个租户的信息分到同一个数据库上面。分表原则按照我们的设计,纵向分库不存放较多的数据,数据两较大时,需要将数据进行导出。我们说的分表一般在横向切片的时候会用的,一个库的一张表能够承受的数据量是有限的,时间久了一张表就不能承受,所以需要将该数据分布到不同的表中,在同一个库中进行保存。案例 SAAS 表结构案例表结构和分库分表的内容如下: 表名表描述是否纳入公共表描述 pany 租户表是租户表数据量少 pub_user 租户员工表是数据两不会很多 pub_branch 租户部门机构表是数据量不会很多 pub_branchuser 租户部门员工表关系表是营业部用户关系表 pub_role 租户角色表是数据量多,变化不会太多 pub_menu 租户菜单表是数量不会很多 pub_rolemen
分库分表原则 来自淘豆网m.daumloan.com转载请标明出处.