因为DPF是号称是一个可以横向扩展的架构,扩容的时候大家首先想到的都是横向扩容。实际上采用这种hash分区进行数据分布的MPP架构横向扩展的代价是相当高的(尤其是数据量大了之后)。其实如果IO的瓶颈不太明显的情况下,可以考虑选择纵向扩展,就是分区数不变的情况下,增加每个分区的CPU和内存数,通常也能提高性能。因此在一开始设计DPF架构时,分区数尽量多些,以便日后较少进行横向扩展。
除了横向扩展,其他的解决办法就是看看到底遇到了什么瓶颈。如果是CPU内存,加硬件或者替换机器,如果是存储,加存储。除了内置存储加不了的情况,开压缩,清数据。 这些都能够解决硬件资源的问题,不是非得横向扩展机器的数量。还有更核心的,确定资源的紧缺不是SQL的不够优化导致的吗?也许调调sql,改改应用,就解决了。