1.垂直拆分
单个数据库最大连接数是151,可以通过 show variables like ‘max_connections’ 查看。
随着用户量越来越大,单个数据库已经无法支撑系统正常使用。这个时候我们就需要对数据库层面进行优化。假设我们现在有订单,用户,商品等功能。我们可以对其进行垂直拆分。
垂直拆分:
将不同的业务拆分到不同数据库中。降低业务对统一数据库的压力。
注意:
禁止跨库 join 查询。(非常影响性能)
优点:
1.拆分后业务清晰,拆分规则明确。
2.系统之间容易扩展和整合。
- 进行系统升级,曾加功能模块并不影响原来的订单库和用户库
3.数据维护简单。
每个服务维护自己的库。
缺点:
1.业务表之间无法join联查,只能通过服务接口远程调用,提升了系统复杂度。
2.跨库事务难以处理。
3.垂直切分后,某些业务仍然数据庞大,仍然存在单体性能瓶颈。->引入水平切分。