分库分表 Mycat

|▌冷眼眸甩不掉的悲伤 提交于 2020-02-27 03:52:59

Mycat是一个开源的、面向企业应用开发的数据库中间件产品,在企业开发中常常使用Mycat作为分库分表的组件,本质上是一种数据库代理

可以在Mycat的官网http://www.mycat.io/下载合适的Mycat版本。

Mycat分库分表

随着时间和业务的发展,数据库中的数据量增长是不可控的,库和表中的数据会越来越大,随之带来的是更高的磁盘、IO、系统开销,甚至性能上的瓶颈。当数据库单表达到千万级别后,SQL性能会开始下降,如果不进行优化,SQL性能会继续下降。

一台服务的资源终究是有限的,因此需要对数据库和表进行拆分,从而更好地提供数据服务,提升SQL性能。

1 分库

分库的含义是根据业务需要,将原库拆分成多个库,通过降低单库大小来提高单库的性能。常见的分库方式有两种——垂直分库和水平分库,分库架构如图17-1所示。

1.1 垂直分库

垂直分库根据业务进行划分,将同一类业务相关的数据表划分在同一个库中。如将原库中有关商品的数据表划分为一个数据库,将原库中有关订单相关的数据表划分为一个数据库。

1.2 水平分库

水平分库是按照一定的规则对数据库进行划分的。每个数据库中各个表结构相同,数据存储在不同的数据库中,如根据年份划分不同的数据库。

2 分表

分表的含义是根据业务需要,将大表拆分成多个子表,通过降低单表的大小来提高单表的性能。常见的分表方式有两种——垂直分表和水平分表,分库架构如图所示。

2.1 垂直分表

垂直分表就是将一个大表根据业务功能拆分成多个分表,例如将原表可根据业务分成基本信息表和详细信息表等。

2.2 水平分表

水平分表是按照一定的规则对数据表进行划分。每个数据表结构相同,数据存储在多个分表中。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!