wKioL1V8PCyQwDZcAAI9T01cqQk588.jpg



垂直切分的优点

◆ 数据库的拆分简单明了,拆分规则明确; 

◆ 应用程序模块清晰明确,整合容易; 

◆ 数据维护方便易行,容易定位;


3,垂直切分的缺点

◆ 部分表关联无法在数据库级别完成,需要在程序中完成; 

◆ 对于访问极其频繁且数据量超大的表仍然存在性能平静,不一定能满足要求; 

◆ 事务处理相对更为复杂; 

◆ 切分达到一定程度之后,扩展性会遇到限制; 

◆ 过读切分可能会带来系统过渡复杂而难以维护。


针对于垂直切分可能遇到数据切分及事务问题,在数据库层面实在是很难找到一个较好的处理方案。实际应用案例中,数据库的垂直切分大多是与应用系统的模块相对应,同一个模块的数据源存放于同一个数据库中,可以解决模块内部的数据关联问题。而模块与模块之间,则通过应用程序以服务接口方式来相互提供所需要的数据。虽然这样做在数据库的总体操作次数方面确实会有所增加,但是在系统整体扩展性以及架构模块化方面,都是有益的。


可能在某些操作的单次响应时间会稍有增加,但是系统的整体性能很可能反而会有一定的提升。而扩展瓶颈问题。 



参考: 简朝阳《mysql性能调优与架构设计》