垂直切分
将数据库想象成由很多个一大块一大块的“数据块”(表)组成,垂直地将这些“数据块”切开,然后把它们分散到多台数据库主机上面

优点
(1)数据库的拆分简单明了,拆分规则明确
(2)应用程序模块清晰明确,整合容易
(3)数据维护方便易行,容易定位
缺点
(1)部分表关联无法在数据库级别完成,要在程序中完成
(2)对于访问极其频繁且数据量超大的表仍然存在性能瓶颈,不一定能满足要求
(3)事务处理复杂
(4)切分达到一定程度之后,扩展性会受到限制
(5)过度切分可能会带来系统过于复杂而难以维护
水平切分
将某个访问极其频繁的表再按照某个字段的某种规则分散到多个表中,每个表包含一部分数据

优点
(1)表关联基本能够在数据库端全部完成
(2)不会存在某些超大型数据量和高负载的表遇到瓶颈的问题
(3)应用程序端整体架构改动相对较少
(4)事务处理相对简单
(5)只要切分规则能够定义好,基本上较难遇到扩展性限制
缺点
(1)切分规则相对复杂,很难抽象出一个能够满足整个数据库的切分规则
(2)后期数据的维护难度有所增加,人为手工定位数据更困难
(3)应用系统各模块耦合度较高,可能会对后面数据的迁移拆分造成一定的困难