主页 > 新闻资讯 > 大数据学习:数据库中间件Mycat简介

大数据学习:数据库中间件Mycat简介

作者:张老师 浏览次数: 2021-03-02 17:58
面对越来越复杂、规模越来越大的数据存储需求,数据库分库分表成为主流的解决方案,在这其中主要负责解决问题的,就是数据库中间节。国内市场来说,Mycat还是有一定地位的。今天的大数据学习分享,我们就主要来讲讲数据库中间件Mycat。

MyCat定义上是一个开源的分布式数据库中间件,它实现了MySQL协议,可以理解为是一个数据库代理,甚至可以使用MySQL的客户端工具以及命令行来访问MyCat。MyCat支持MySQL、MSSQL、Oracle、DB2、以及PostgreSQL等主流数据库,甚至像MongoDB这种NoSQL也支持。

大数据学习:数据库中间件Mycat简介

MyCat是什么?

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

MyCat发展到目前的版本,已经不是一个单纯的MySQL代理了,它的后端可以支持MySQL、SQL Server、Oracle、DB2、PostgreSQL等主流数据库,也支持MongoDB这种新型NoSQL方式的存储,未来还会支持更多类型的存储。

而在最终用户看来,无论是那种存储方式,在MyCat里,都是一个传统的数据库表,支持标准的SQL语句进行数据的操作,这样一来,对前端业务系统来说,可以大幅降低开发难度,提升开发速度。

MyCat解决什么问题?

1、连接过多问题,可以通过MyCat统一管理所有的数据源,后端数据库集群对前端应用程序透明。

2、独创的ER关系分片,解决E-R分片难处理问题,存在关联关系的父子表在数据插入的过程中,子表会被MyCat路由到其相关父表记录的节点上,从而父子表的Join查询可以下推到各个数据库节点上完成,这是最高效的跨节点Join处理技术,也是MyCat首创。

3、采用全局分片技术,每个节点同时并发插入和更新数据,每个节点都可以读取数据,提升读性能的同时,也解决跨节点Join的效率。

4、通过人工智能的catlet支持跨分片复杂SQL实现以及存储过程支持等。使用方式主要通过MyCat注释的方式来执行:

(1)跨分片联合查询注解支持

(2)存储过程注解支持

(3)批量插入与ID自增长结合的支持

(4)获取批量sequence值的支持

(5)更好地支持数据库读写分离与高可用性,MyCat支持基于MySQL主从复制状态的高级读写分离控制机制(比如Slave_behind_master<100则开启),而一旦检测到主从同步出错或者延时超过发展,则自动排除readHost,防止程序读到很久的旧数据。

关于大数据学习,数据库中间件Mycat,以上就为大家做了一个初步的入门介绍了。Mycat作为数据库中间件,有优势,也有不足,关键是要结合到具体的场景和业务需求,进行全面的考量。成都加米谷大数据,专业大数据培训机构,大数据开发、数据分析与挖掘,零基础班本月正在招生中,课程大纲及学习视频,可联系客服获取!
热点排行
推荐文章
立即申请>>