为了应对单库多表随着数据库表及表数据量的不断增加带来的性能瓶颈,切分数据库也成为一种不错的解决方式,其主要思想是将一个数据库切分成多个不同部分到多个数据库中,根据业务系统的不同,切分又可以分为垂直切分和水平切分两种。
常用分库分表方法:
1.)水平切分
水平切分主要是将一张表中的不同数据切分到不同库中,相对垂直切分而言,切分规则比较复杂,维护也更加复杂一些。常用的水平切分场景,如果一张表中存放有大字段或者内容较多的字段,而且这些字段查询的概率较低,一般建议分表操作,将一张表拆分成两张对应的表,需要获取这些大字段或者内容较多的字段时查询分表,通过这种拆分,可以大大提高效率。
.2)垂直切分
垂直切分往往是将不同业务模块的表切分到不同的数据库中,比较适合业务逻辑清晰,业务之间耦合度低且相互影响小的系统,相对而言规则较简单,实施也容易。
而实际应用中,往往是将垂直切分跟水平切分结合起来,往往先垂直切分,再进行水平切分,如下图(引用其他博客的图)
参考资料:
http://blog.csdn.net/bluishglc/article/details/7696085