1、什么是mycat
Mycat是数据库中间件
中间件:是一类连接软件组件 和应用的计算机软件,以便于软件各部件之间的沟通
例子: nginx, web中间件
数据库中间件:连接php应用程序和数据库的工具
2.为什么使用mycat数据库?
- PHP与数据库紧耦合,操作多个数据库需要自己配置相关数据库服务地址链接
- 高访问量高并发对数据库压力,一般都会部署多台服务器来抵御并发访问需自己做流量分配
- 数据库存储大量的数据,分库分表后,不方便维护管理,用它来解决
总结:屏蔽底层复杂性,方便快速开发
3. MyCat主要应用场景
• 单纯的读写分离,此时配置最为简单,支持读写分离,主从切换;
• 分表分库,对于超过 1000 万的表进行分片,最大支持 1000 亿的单表分片;
• 多租户应用,每个应用一个库,但应用程序只连接 Mycat,从而不改造程序本身,实现多租户化;
• 报表系统,借助于 Mycat 的分表能力,处理大规模报表的统计;
• 替代 Hbase,分析大数据;
• 作为海量数据实时查询的一种简单有效方案,比如 100 亿条频繁查询的记录需要在 3 秒内查询出来结果, 除了基于主键的查询,还可能存在范围查询或其他属性查询,此时 Mycat 可能是最简单有效的选择。
4.mycat工作实现原理
通过代理的方式来获取数据内容,它拦截用户发送过来的 SQL 语句,首先对 SQL 语句做了一些特定的分析:如分片分析、路由分析、读写分离分析、缓存分析等
然后将此 SQL 发往后端的真实数据库,并将返回的结果做适当的处 理,最终再返回给用户。
mycat架构