1 / 11
文档名称:

分库分表原则(明细).docx

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

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

分享

预览

分库分表原则(明细).docx

上传人:坐水行舟 2019/4/17 文件大小:118 KB

下载得到文件列表

分库分表原则(明细).docx

相关文档

文档介绍

文档介绍:芇芄肇分库分表原则螄袀羂莈蚆莂读完《分库分表基础》,对于分库分表有了一个概念性的认识,数据库表可以分成两大类:一类是公共表,另一类是业务表。膃薀肇膅螅肇业务表定义蚃芁莃业务表很容易识别,随着业务开展,表的数据量会越来越大,一个数据库很难存放的下,我们需要对于数据库和表的分布进行管理控制,引入节点定位服务,以满足业务需求。个人收集整理勿做商业用途***袃袀肂肁肀公共表的特点定义芈芆***在分片的情况下,当业务表因为规模而进行分片以后,业务表与这些附属的字典表之间的关联,就成了比较棘手的问题,考虑到字典表具有以下几个特性:个人收集整理勿做商业用途蒁螁螄变动不频繁肅莄薁数据量总体变化不大羁薂衿数据规模不大,很少有超过数十万条记录。肇螆芇鉴于此,系统需要定义了一种特殊的表,称之为“全局表”,全局表可通过小表广播同步到个系统,全局表具有以下特性:个人收集整理勿做商业用途薄肈膄全局表的插入、更新操作会实时在所有节点上执行,保持各个分片的数据一致性膈袅聿全局表的查询操作,只从一个节点获取肃螈蚇全局表可以跟任何一个表进行JOIN操作羆羃莇蒃葿莁公共表小表广播肇莅螁公共表在初始化时,需要初始化到每个分库上面,以后的变化都需要把主库的数据同步到每一个分库上面去,形成小表广播机制。这样每分库上的表都可以有全量的公共表。个人收集整理勿做商业用途袂艿莆业务表分库分表原则肈蒄蒇分库分表是对于业务表而言的,现阶段考虑的是纵向切分,分库分表是两个不同的概念。莂羀螂袆袆腿分库原则螁螀葿租户间的数据,考虑通过分库的形式分开,将不同的租户的数据放到不同的库中。羇羅薇蒄蒀膃大的租户的客户数据可能涉及到一个库放不下,可以考虑通过组织结构进行分库,分库原则为单张表的数据能够承受。个人收集整理勿做商业用途罿肃羁袄芁膈小租户可能数据太小,可能涉及到将多个租户的信息分到同一个数据库上面。螆蒅蚆芃羁薄分表原则袇薄荿按照我们的设计,纵向分库不存放较多的数据,数据两较大时,需要将数据进行导出。螂蚁羇衿羆蚆我们说的分表一般在横向切片的时候会用的,一个库的一张表能够承受的数据量是有限的,时间久了一张表就不能承受,所以需要将该数据分布到不同的表中,在同一个库中进行保存。个人收集整理勿做商业用途膂蒂羅蚆肄肁案例薁羈羀SAAS表结构案例螇膃螆羁蚈肂表结构和分库分表的内容如下:pany薃袀薈租户表蝿膄羆是羂蚀袃租户表数据量少薆蒇羂pub_user莁莀芆租户员工表薈薅肆是袁膁芄数据两不会很多虿螃蒀pub_branch薄袁荿租户部门机构表蒆肆膆是数据量不会很多pub_branchuser租户部门员工表关系表是营业部用户关系表pub_role租户角色表是数据量多,变化不会太多pub_menu租户菜单表是数量不会很多pub_rolemenu角色菜单表是角色菜单数据可能会很多,考虑到功能独立,设为公共模块反洗钱案例-客户风险PS:取了客户风险等级部分表作为例子,没有将所有表结构全部纳入进来。pany租户表是数据量不大,不经常变化pub_customer客户表否数量多不适合做为公共表Aml_riskitemdefine风险子项定义表否与其它表关系较紧密Aml_itemscorerule风险子项规则表否与其它表关系较紧密Aml_riskschemedefine风险方案定义表否与其它表关系较紧密Aml_custriskrank客户风险等级落地表否每个客户个性化总结基于以上原则,分库分表都是需要根据具体的业务情况来的,需要结合数据量,实际的系统场景来决定将表进行归类:个人收集整理勿做商业用途数据量有多少,根据主要表的数据量,来划分是否将这部分功能相关的表进行分类;考虑功能内聚,尽量将功能相近的表,放到一起。