一、MyCAT分库分表之架构原理剖析

Mycat是一个数据库中间件,用于连接PHP应用和数据库,解决高并发场景下的数据库压力问题。它支持读写分离、分库分表,适用于多租户应用、报表系统和大数据实时查询。Mycat通过SQL解析和路由分析,将请求转发到后端数据库并处理结果。
摘要由CSDN通过智能技术生成

1、什么是mycat

Mycat是数据库中间件

中间件:是一类连接软件组件 和应用的计算机软件,以便于软件各部件之间的沟通

例子: nginx, web中间件

数据库中间件:连接php应用程序和数据库的工具

2.为什么使用mycat数据库?

  1. PHP与数据库紧耦合,操作多个数据库需要自己配置相关数据库服务地址链接
  2. 高访问量高并发对数据库压力,一般都会部署多台服务器来抵御并发访问需自己做流量分配
  3. 数据库存储大量的数据,分库分表后,不方便维护管理,用它来解决

总结:屏蔽底层复杂性,方便快速开发

3. MyCat主要应用场景

• 单纯的读写分离,此时配置最为简单,支持读写分离,主从切换;

  • 分表分库,对于超过 1000 万的表进行分片,最大支持 1000 亿的单表分片;

  • 多租户应用,每个应用一个库,但应用程序只连接 Mycat,从而不改造程序本身,实现多租户化;

  • 报表系统,借助于 Mycat 的分表能力,处理大规模报表的统计;

  • 替代 Hbase,分析大数据;

  • 作为海量数据实时查询的一种简单有效方案,比如 100 亿条频繁查询的记录需要在 3 秒内查询出来结果, 除了基于主键的查询,还可能存在范围查询或其他属性查询,此时 Mycat 可能是最简单有效的选择。

 

 

4.mycat工作实现原理

通过代理的方式来获取数据内容,它拦截用户发送过来的 SQL 语句,首先对 SQL 语句做了一些特定的分析:如分片分析、路由分析、读写分离分析、缓存分析等

然后将此 SQL 发往后端的真实数据库,并将返回的结果做适当的处 理,最终再返回给用户。

mycat架构

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值