MyCat是什么?为什么要用MyCat?

MyCat是一个开源的分布式数据库系统,作为MySQL协议的服务器,前端用户可以将其视为数据库代理。其核心功能是分表分库,能够将一个大表水平分割为多个小表存储在后端数据库中。适用于需要对数据库层进行抽象管理的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[置顶] MyCat是什么?为什么要用MyCat?

标签: 数据库 分布式 mysql MyCat
31008人阅读  评论(5)  收藏  举报

实习的时候,在一个项目当中,项目经理要求把原先的MySQL数据连接基于mycat来进行改造 。当时就在想MyCat是什么东西?为什么要用它呢?

*一、什么是MyCat: 
MyCat是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器,前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生协议与多个MySQL服务器通信,也可以用JDBC协议与大多数主流数据库服务器通信,其核心功能是分表分库,即将一个大表水平分割为N个小表,存储在后端MySQL服务器里或者其他数据库里。

MyCat发展到目前的版本,已经不是一个单纯的MySQL代理了,它的后端可以支持MySQL、SQL Server、Oracle、DB2、PostgreSQL等主流数据库,也支持MongoDB这种新型NoSQL方式的存储,未来还会支持更多类型的存储。而在最终用户看来,无论是那种存储方式,在MyCat里,都是一个传统的数据库表,支持标准的SQL语句进行数据的操作,这样一来,对前端业务系统来说,可以大幅降低开发难度,提升开发速度


二、那么为什么要用到MyCat呢?

*例如操作系统是对各类计算机硬件的抽象。那么我们什么时候需要抽象?假如只有一种硬件的时候,我们需要开发一个操作系统吗? 
再比如一个项目只需要一个人完成的时候不需要leader,但是当需要几十人完成时,就应该有一个管理者,发挥沟通协调等作用,而这个管理者对于他的上层来说就是对项目组的抽象。 
同样的,当我们的应用只需要一台数据库服务器的时候我们并不需要Mycat,而如果你需要分库甚至分表,这时候应用要面对很多个数据库的时候,这个时候就需要对数据库层做一个抽象,来管理这些数据库,而最上面的应用只需要面对一个数据库层的抽象或者说数据库中间件就好了,这就是Mycat的核心作用。 
所以可以这样理解:数据库是对底层存储文件的抽象,而Mycat是对数据库的抽象。*

  • 插入代码
  • 严禁讨论涉及中国之军/政相关话题,违者会被禁言、封号!     
查看评论
4楼  Bboy-AJ-任杰2018-03-06 14:55发表 [回复] [引用] [举报]
所以说是中间件,讲的很清楚。
3楼  hoobill12018-01-11 17:43发表 [回复] [引用] [举报]
解释的很到位。
2楼  王啸tr19122017-12-29 09:44发表 [回复] [引用] [举报]
也就是说,我们应用程序访问mycat以代替mysql
Re:  Silence-wen2017-12-29 11:33发表 [回复] [引用] [举报]
回复王啸tr1912:不是的,你可以理解为mycat之前对数据库的一个管理工具,到终究不能代替mysql。mycat可不仅仅只是支持MySQL,像一些主流的数据库都是支持的。
1楼  DD_Davina2017-12-24 14:12发表 [回复] [引用] [举报]
感谢分享
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值