MyCat的主要作用
实现数据库垂直拆分
数据库水平拆分
数据库水平拆分
数据库垂直拆分
垂直拆分结构
MYCAT的主要作用:MYCAT可以实现数据库的垂直拆分
数据库的垂直拆分:可以称之为纵向的拆分,把数据库中的表按照一定的规则来分摊到多个数据库实例中,比如一个电商系统可以将用户模块、订单模块、支付模块等相关涉及的表分别存放到用户库,订单库,支付库中。
数据库的水平拆分:也就是分库分表,在经过垂直拆分后,业务量持续发展,规模相当大。这时,拆分过后的用户库已经不能满足需求,这时需要通过一定的规则进行水平拆分
切蛋糕(从左向右水平分开)
将原来的一个用户库分成多个用户库,通过一定的规则进行切分(拆分之后,每个库中的表结构都一样),前端应用通过mycat和切分规则来对后端切分后的数据库进行访问
MACAT的主要作用
1.数据库的垂直拆分
2.数据库的水平拆分
3.实现数据库的读写分离
数据库的垂直拆分
举个例子我们在写入数据的时候当负载很大的时候,把数据库按列拆分
数据库的水平拆分
数据库水平拆分:分库、分表
使用场景:在经过垂直拆分后,业务量持续发展,规模相当大。这时,拆分过后的用户库已经不能满足需求,这时需要通过一定的规则进行水平拆分
切蛋糕(从左向右水平分开)
将原来的一个用户库分成多个用户库,通过一定的规则进行切分(拆分之后吗,表结构一样哦),前端应用通过mycat和切分规则来对后端切分后的数据库进行访问
单DB:不是只有一台数据库服务器,而是主从复制集群(只有一台数据库负责写操作,其余负责读),这种架构只能分担数据库的只读负载
如果写负载已经达到一台数据库服务器无法承担的时候,那该怎么办
这时候需要对数据库进行垂直或水平的拆分
数据库垂直拆分:纵向切分(切蛋糕从上到下,切成几块),将一个数据库中的表,按照一定的规则,分担到多个数据库实例中(用户模块、订单模块、支付模块,原来这三个模块集中在单DB中,数据库垂直拆分就是将这三个相互并不影响的模块单独拆分出来,分别形成用户库、订单库、支付库,然后通过mycat来访问这三个数据库,而对于前端应用可以抽象成一个数据库来使用)
数据库垂直拆分,将原有的一个单DB数据库,拆分成多个数据库,但通过MYCAT抽象成单个数据库进行调用
实现数据库水平切分,即数据库表分区
垂直拆分数据库