分库分表介绍

435 阅读1分钟

为什么要进行分库分表?

随着业务的不断增长,数据库中的数据量越来越大,数据库的压力也越来越大,在业务繁忙的时候,数据库的压力直线下降,为了保证系统良好的性能,我们必须采取措施来保证数据库的压力,如果是为了缓解数据库的读负载,我们可以采取数据库主从复制的方式,也原来的数据增加几台具有相同数据的从服务器,通过读写分离的方式就可以将数据库的读负载分担到多台不同从数据库服务器中。但随着业务的进一步发展,我们会发现这时单一的主数据库也已经负担不了写的负载了,而单纯通过升级服务器的硬件也很难去完美地去解决这个问题, 这时我们就需要对原来的主数据库服务器进行拆分了。

拆分的方式主要有以下几种

  1. 把主数据库中的多个数据库拆分到不同的多个物理数据库中,因为一个mysql节点可以包含多个逻辑库(这里的一个节点可以指代的是一主多从的mysql主备集群)。
    缺点:如果数据库的压力都集中在一个逻辑库中,那么此中方式也很难缓解数据库的压力
  2. 将一个库中的表分离到不同表的不同数据库中 缺点如果数据库的压力都集中在一个数据库表中,那么此中方式也很难缓解数据库的压力

分库分表的几种方式: