在项目早期,无论是从成本上还是业务模型上考虑,往往都难以估量长期的业务发展变化,尤其是数据库的扩容,项目的设计成员往往会单纯地以为,等到数据量膨胀以后,直接扩容数据库的规格,通过堆硬件的方式来解决数据库负载的问题。从笔者的从业经验来看,这样的思想几乎是行业的“主流思想”。这也无可厚非,因为从业务的角度来看,底层做得越透明,往往越成功。
但从数据库的角度来看,单纯地堆硬件扩容依然存在非常大的性能隐患,下面我们分场景来探讨一下扩容的技术实践。