Mycat详细介绍

1.什么是MyCat?

Mycat数据库中间件,所谓中间件,是一类连接软件组件和应用的计算机软件,以便软件各部件之间的通信。

        例如 tomcat,web的中间件。而数据库中间件是连接Java应用程序和数据库中间的软件。

  1. 为什么使用MyCat的?
  • Java与数据库的紧耦合
  • 高访问量高并发对数据库的压力
  • 读写请求数据不一致

        我们现在普遍的Java应用程序都是直接连接了MySQL软件进行读写操作,也就是我们在Java中的配置文件等定义了mysql的数据源,直接连接到了我们的mysql软件,但是当某些情况下我们可能需要用到了多个数据库,这个时候我们可能就需要配多个数据源去连接我们的多个数据库,这个时候我们进行sql操作的时候就会很麻烦,因为Java与数据库有了一个紧密的耦合度,但是如果我们在Java应用程序与mysql中间使用了mycat,我们只需要访问mycat就可以了,至于数据源等问题,mycat会直接帮我们搞定。

        再来说一下高访问量高并发,我们都知道mysql数据库实际上在数据查询上是有一个瓶颈的,当我们的数据太多的时候,已经互联网上有高并发的请求的时候,这个时候对我们mysql的压力是非常大的,当访问量一大,就可能会出现查不出数据,响应的时间太长等,这个时候我们可能需要有多个服务器对数据库进行读写分离,以及对数据库进行集群,这个时候我们的sql语句要进行分类,哪个sql语句要访问哪个数据库,这个时候只要交给mycat就可以了。

 

3  MyCat干什么?

        (1)读写分离

       (2)数据分片

                   垂直拆分(分库),水平拆分(分表),垂直拆分+水平拆分(分库分表)  

                        分库:就是把咱么一个库拆分成多个数据库,每个数据库存分别不同的表,缓解了数据库的压力

                  水平拆分(分表):就是一个表达到了千万级数据量,但凡达到瓶颈,数据库查询的销量非常低(查询的非常慢),进行分表,把一张表拆分成多个表,数据不是在一个数据库,而是分到多个数据库,这就是分表操作,如果直接连java程序的话,又需要配置多个数据源,还有判断我这一张表到底那些数据在那些数据库,又是浅耦合了,需要MyCat出山,把分布式数据库封装一下,Java程序只需要访问MyCat就可以了,表里面的那些数据在那些数据库里面?由谁来操心?由MyCat来做这个事

    3多数据源整合

             

         MyCat的原理

                MyCat的原理中最重要的一个动词是“拦截”,它拦截了用户发送过来的SQL语句,首先对SQL语句做了一些特定的分析:如分片分析,路由分析,读写分离分析,缓存分析等,然后将此SQL发往后端的真实数据库,并将返回的结果做适当的处理,最终再返回给用户

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值