计算机系统应用教程网站

网站首页 > 技术文章 正文

水平切分 水平切向

btikc 2024-10-03 15:20:38 技术文章 13 ℃ 0 评论

由于垂直切分是按照业务的分类将表分散到不同的库,所以有些业务表会过于庞大,存在单库读写与存储瓶颈,所以就需要水平拆分来做解决。

典型拆分规则:

1、从会员的角度来分析,商户订单交易类系统中查询会员某天某月某个订单,那么就需要按照会员结合日期来拆分,不同的数据按照会员 ID 做分组,这样所有的数据查询 join 都会在单库内解决;

2、按照用户 ID 求模,将数据分散到不同的数据库,具有相同数据用户的数据都被分散到一个库中;

3、按照日期,将不同月甚至日的数据分散到不同的库中;

4、按照某个特定的字段求摸,或者根据特定范围段分散到不同的库中,具体需求,具体分析

5、从数据的角度来分析,iot中设备的上报数据量比较大,大棚里查询某个设备某个时间点上报的数据,或者时间段内上报的数据,那么就需要按照大棚来进行拆分,不同大棚的数据拆分到不同的数据库中,不同的数据按照大棚id做分组,这样所有的数据查询 join 都会在单库内解决;

优点:

拆分规则抽象好,join 操作基本可以数据库做;

不存在单库大数据,高并发的性能瓶颈;

应用端改造较少;

提高了系统的稳定性跟负载能力。

缺点:

拆分规则难以抽象;

分片事务一致性难以解决;

数据多次扩展难度跟维护量极大;

跨库 join 性能较差。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表