首选无论是水平分区还是垂直分区都有各自的优势,很难说哪个更有优势,主要是它们的应用场景是不同的,适合业务才是最有优势的。
就水平而言,当单表很大的时候会把单个表拆成N个具有相同结果的表,根据你的分区规则,保证你的数据的均衡分布,防止单个分区的热点访问,提高了访问效率,减轻了数据库压力,对于数据的聚合统计,这个往往会比较麻烦,后期当单个分区达到足够大的时候就需要考虑在再分区,可扩展性比较好。
垂直分区的话,刚刚开始的时候可能单表某些字段对于某些业务访问频繁,然后会把单表变多表或者把多个表,各个业务之后使用自己的表字段,当然多表根据冗余字段关联,后期的话会把表独立出来,按照业务划分,也可以减轻数据库的压力
无论是水平还是垂直原则上都是减轻你的数据库单库单表的压力,至于具体的取舍还是需要看你的业务,都需要满足业务为前提。