Skip to content

分库分表

随着服务器的发展,应用数据量也会日益增多,若采用单个数据库存储,会存在以下瓶颈: 1:IO瓶颈:热点数据太多,存放热点数据的缓存区不足,就会使用磁盘,产生大量IO,速度大大降低,请求数据太多,网络延迟。带宽不足,造成严重的IO瓶颈。 2:CPU瓶颈:排序,分组,连接查询,聚合统计会消耗掉大量的CPU资源,请求次数太多,CPU性能出现瓶颈

为了减轻这两个瓶颈产生的影响,我们发明了分库分表操作

核心思想就是通过将数据库的数据分散到不同数据库的操作来减轻这种影响,提升性能


拆分策略

垂直拆分

垂直分库

以表为依据,根据业务不同将不同的表拆分到不同的表中

特点: 每个表的结构不一样 每个表的数据不一样 表的并集是全部数据

垂直分表

以字段为依据,依据不同的字段将数据拆分到不同的表中

特点: 每个表的结构不一样 每个表的数据也不一样,一般通过主键实现数据配对 所有表的数据的并集是全量数据

水平拆分

水平分库

按照字段数据为依据,将数据拆分到不同的数据库中 也就是说,不同的数据库中的表结构相同,数据被拆分到不同的表中

特点: 数据的表结构都一样 表中的数据不一样 所有数据的并集就是全数据

水平分表

和水平分库差不多。也是将数据分配到不同的表中

特点: 表结构一样 数据不一样 并集是全部数据


Mycat

mycat是数据库连接的中间件,可以像使用mysql一样使用这个中间件,开发者感知不到mycat的存在 mycat伪装了MySQL的协议, 用户可以无缝更换mycat

优势: 性能稳定 强大的技术团队 体系完善 社区活跃

Contact me: 1943284256@qq.com