数据垂直切分
时间:2014-11-25
数据垂直切分到底是如何切分的,数据的垂直切分,也可以称为纵向切分,将数据库想象成由很多个一大块一大块的"数据块"组成,垂直地将这些"数据块"切开,然后把它们分散到多台数据库主机上面,这样的切分方法就是垂直的数据切分.
一个架构设计较好的应用系统,其总体功能由很多个功能模块所组成的,而每一个功能模块所需要的数据对应到数据库中就是一个或多个表,而在架构设计中,各个功能模块相互之间的交互眯越统一,越少,系统的耦合度就越低,系统各个模块的维护性及扩展性也就越好,这样的系统,实现数据的垂直切分也就越容易.
功能模块越清晰,耦合度越低,数据垂直切分的规则定义也就越容易,完全可以根据功能模块进行数据的切分,不同功能模块的数据存放于不同的数据库主机中,可以很容易景避免跨数据库的join存在,同时系统架构也非常清晰.
当然,很难有系统能够做到所有功能模块表完全独立,根本不须要访问对方的表,或者须要将两个模块的表进行join操作,这种情况下,就必须根据实际的应用场景进行评估权衡,决定是造就应用程序将需要join的表相关模块都存放在同一个数据库中,还是让应用程序做更多的事情,完全通过模块接口取得不同数据库中的数据,然后在程序中完成join操作.