mycat

MyCat:数据库中间件

为什么用?
1、降低Java与数据库耦合度;
2、高访问量高并发造成数据库压力太大,减轻数据库压力;
3、读写请求数据不一致;

做了什么?
1、读写分离
在这里插入图片描述
MySQL主从复制:
https://blog.csdn.net/xsh096011/article/details/105660305

2、数据分片
垂直拆分(分库);
水平拆分(分表);
垂直+水平拆分(分库分表)

在这里插入图片描述

3、多数据源整合
在这里插入图片描述

原理:
拦截:拦截用户发送过来的SQL语句

拦截用户发送SQL语句,对SQL语句做特定分析:分片分析、路由分析等,将SQL发送给后端真实数据库,返回的结果处理后返回给用户;

在这里插入图片描述

启动和登录
https://blog.csdn.net/xsh096011/article/details/107187881

分库:

垂直分片:(按业务划分,或功能拆分,解决单库性能问题)
拆分前,一个数据库由多个数据表构成,每个表对应不同业务。拆分后按照业务归类,分布到不同数据库,将压力分散至不同数据库。

特点:
(优点)库表职责单一,复杂度降低,易于维护。
单库或单表压力降低,相互间影响降低;

(缺点):
部分表关联无法在数据库级别完成,需要在程序中完成;
单表大数据量仍存在性能瓶颈;
单表或单库热点访问仍对DB压力大;
事务处理更为复杂,需要分布式事务介入;
拆分到一定程度,扩展性会遇到限制;

在这里插入图片描述
分库效果:

在这里插入图片描述

分表:

水平分片:通过某个字段(或某几个字段),根据某种规则将数据分散至多个库或表中,每个分片仅包含数据一部分;(单表复杂,为解决单表大数据量问题)

特点:
(优点)解决单表单库大数据量和高热点访问性能瓶颈问题;
应用程序端整体架构改动相对较少;
事务处理相对简单;
切分规则定义好,基本较难遇到扩展性限制;

(缺点)拆分规则相对更复杂;
后期数据维护难度增加;
产品逻辑更复杂;
在这里插入图片描述
在这里插入图片描述

分库分表带来的问题:
https://www.yuque.com/lexiangqizhong/java/ckt9uw

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值