1 / 5
文档名称:

分库分表原则.docx

格式:docx   大小:128KB   页数:5页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

分库分表原则.docx

上传人:luciferios08 2018/6/24 文件大小:128 KB

下载得到文件列表

分库分表原则.docx

文档介绍

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

租户表数据量少
pub_user
租户员工表

数据两不会很多
pub_branch
租户部门机构表

数据量不会很多
pub_branchuser
租户部门员工表关系表

营业部用户关系表
pub_role
租户角色表

数据量多,变化不会太多
pub_menu
租户菜单表

数量不会很多
pub_rolemenu
角色菜单