切分计算(水平切分)
切分计算(水平切分)拆分规则抽象好,join 操作基本可以数据库做;优点:3、按照日期,将不同月甚至日的数据分散到不同的库中;4、按照某个特定的字段求摸,或者根据特定范围段分散到不同的库中,具体需求,具体分析5、从数据的角度来分析,iot中设备的上报数据量比较大,大棚里查询某个设备某个时间点上报的数据,或者时间段内上报的数据,那么就需要按照大棚来进行拆分,不同大棚的数据拆分到不同的数据库中,不同的数据按照大棚id做分组,这样所有的数据查询 join 都会在单库内解决;
由于垂直切分是按照业务的分类将表分散到不同的库,所以有些业务表会过于庞大,存在单库读写与存储瓶颈,所以就需要水平拆分来做解决。
典型拆分规则:
1、从会员的角度来分析,商户订单交易类系统中查询会员某天某月某个订单,那么就需要按照会员结合日期来拆分,不同的数据按照会员 ID 做分组,这样所有的数据查询 join 都会在单库内解决;
2、按照用户 ID 求模,将数据分散到不同的数据库,具有相同数据用户的数据都被分散到一个库中;
3、按照日期,将不同月甚至日的数据分散到不同的库中;
4、按照某个特定的字段求摸,或者根据特定范围段分散到不同的库中,具体需求,具体分析
5、从数据的角度来分析,iot中设备的上报数据量比较大,大棚里查询某个设备某个时间点上报的数据,或者时间段内上报的数据,那么就需要按照大棚来进行拆分,不同大棚的数据拆分到不同的数据库中,不同的数据按照大棚id做分组,这样所有的数据查询 join 都会在单库内解决;
优点:
拆分规则抽象好,join 操作基本可以数据库做;
不存在单库大数据,高并发的性能瓶颈;
应用端改造较少;
提高了系统的稳定性跟负载能力。
缺点:
拆分规则难以抽象;
分片事务一致性难以解决;
数据多次扩展难度跟维护量极大;
跨库 join 性能较差。