顾名思义,即把存于一个库的数据分散到多个库中,把存于一个表的数据分散到多个表中。数据库
当一个数据库被建立以后,随着时间的推移和业务量的增长,数据库中表以及表中的数据量就会愈来愈多,就有可能出现两种弊端:(1)数据库的存储资源是有限的,其负载能力也是有限的,数据的大量积累确定会致使其处理数据的能力降低;(2)数据量越多,那么对数据的增删改查操做的开销也会愈来愈大,因此,当出现如上两种状况,分库分表势在必行。资源
(1)垂直切分请求
适用场景:若是是由于表的个数多而让数据多,能够按照功能划分,把联系密切的表切分出来放在同一个库中(分库);数据
若是表的字段太多,能够以列为出发点,将字段进行拆分(分表);查询
(2)水平切分集合
适用场景:若是是由于表中的数据量过于庞大,则能够采用水平切分,按照某种约定好的规则将数据切分到不一样的数据库中;时间
必需要根据当前数据库的状况作出合适的选择,也能够将两种状况结合在一块儿。
分库分表的结果会使数据分散,很差查询,主要有两种查询方式:
(1)、分步查:先查找主表,而后获得关联表的id,再发起请求获得关联数据;
(2)、联合查:同时发起多个查询请求,而后将全部的结果集合起来。