垂直拆分与水平拆分设计原理
垂直拆分:
1.数据库拆分主要指分库分表,其目的主要是分散数据库压力,达到横向扩展,满足均衡访问等。
2.数据库拆分主要有两种方式:垂直拆分和水平拆分。
分布式事务问题
A.垂直拆分:
将不同业务功能相关的表放到不同的数据库中,也就是类似于微服务架构中的会员数据库,订单数据库/支付数据库
数据整合就需要通过RPC接口通讯
水平拆分:
B.水平拆分:
将一张表数据拆分n多张不同的子表来进行存放
考虑扩容的问题
考虑查询的问题
考虑主键问题(序列)
考虑一张表最多存放多少数据()
当一张表的业务量行数如果超过500万行(阿里巴巴Java开发手册官方推荐),效率还是非常低,可以对同一张表数据实现拆分放到多个不同的表中存放。
千万级数据分表分库策略有哪些?
分表分库策略有哪些?
1.日期
2.hash
3.范围
4.枚举
5.地区(常量)
分片策略?
回答:
数据的插入: