数据库如何分表 何时分

原文地址:https://www.jianshu.com/p/f6cd788e6b29
CNB:
1 垂直切分
1.1 垂直分库
垂直分库 是指根据业务耦合性,将关联度低的不同表存储在不同的数据库.
1.2 垂直分表
垂直分表 是指基于数据库的列进行,某个表字段较多,可以新建一张扩展表,将不经常用或者字段长度较大的字段拆分到扩展表中.
1.3 垂直切分优点
1.3.1 解决业务系统层面的耦合,业务清晰
1.3.2 与微服务的治理类似,也能对不同的业务的数据进行分级管理 维护 监控 扩展等
1.3.3 高并发场景下,垂直切分一定程度的提升IO 数据库连接数 单机硬件资源的瓶颈.
1.4 垂直切分缺点
1.4.1 部分表无法json,只能通过接口聚合方式解决,提升了开发的复杂度.
1.4.2 分布式事物处理复杂
1.4.3 依然存在单表数据过大的问题.

2 水平切分
水平切分 是指根据表内数据内在的逻辑关系,将同一个表按不同的条件分散到多个数据库或多个表中,每个表中只包含一部分数据,从而使得单个表的数据量变小,达到分布的效果.
2.1 水平切分的优点
2.1.1 不存在 单库数据量过大,高并发的性能瓶颈,提升系统稳定性和负载能力.
2.1.2 应用端改造小,不需要拆分业务模块.
2.2 水平切分的缺点
2.2.1 跨分片的事物一致性难以保证
2.2.2 跨库的JOIN关联查询性能较差
2.2.3 数据多次扩展难度和维护量极大.

你可能感兴趣的:(数据库如何分表 何时分)