MyCat—尚硅谷—高级

(视频:尚硅谷:尚硅谷Mycat核心教程(mycat实战应用)_哔哩哔哩_bilibili

目录

一.入门概述:

二.安装启动:

三.搭建读写分离:

四.垂直拆分—分库:

五.水平拆分—分表:(更复杂)



一.入门概述:

             1)是什么:
                      a:数据库中间件:连接 Java应用程序 和 数据库。
                      b:为什么要用 Mycat:
                            -1.java 与 数据库 紧耦合。
                            -2.高访问量并发访问,对数据库压力。
                            -3.读写请求数据不一致:读写分离。



             2)数据库中间件对比:


             3)MyCat 作用、能干什么:
                      a:读写分离:使用 MyCat,简化直接用 程序 读写分离 操作。


                      b:数据分片:垂直拆分(分库)、水平拆分(分表)、垂直+水平(分库分表)


                      c:多数据源整合:



             4)MyCat 原理:
                      a:Mycat 原理中,最重要的一个动词是:“ 拦截 ”:
                            -1.它拦截用户发送过来的 sql 语句,首先对 SQL 语句做了一些特定的分析:
                           
       如:分片分析、路由分析、读写分离分析、缓存分析等。

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

                            -3.这种方式,把数据库的分布式,从代码中解耦出来。程序员察觉不出来后台使用 MyCat 还是 MySQL。





 

二.安装启动:

             1)安装:
                      a:rpm 方式,按安装顺序:
                      b:yum 方式,需要联网:
                      c:解压后,既可以使用:
                            -1.上传到:/opt/mycat (放安装包)
                            -2.解压:tar -zxvf 
                            -3.解压后的,拷贝到:/usr/local/mycat(cp -r )
                            -4.三个配置文件:
                                    1.schema.xml:定义 逻辑库、表、分片节点等内容。
                                    2.rule.xml:定义分片规则。
                                    3.server.xml:定义用户,以及系统相关变量,如端口等。

                      d:解压后,编译安装:


             2)启动:
                      a:修改配置文件:
                            -1.(server.xml):

                            -2.(schema.xml):



                      b:验证 数据库能否连通:
                            -1.(mysql -u root -p -h 114.215.173.88 -P 3306)

                      c:启动:
                            -1.控制台启动:./mycat console

                            -2.后台启动:./mycat start

             3)登陆:
                      a:登陆 后台管理窗口:用于维护 MyCat
                            -1.( mysql -u mycat -p -h 114.215.173.88 -P 9066)(和登录 Mysql 一样)

                      b:登陆 数据窗口:常用,用于通过 MyCat 查询数据,访问 Mycat
                            -1.( mysql -u mycat -p -h 114.215.173.88 -P 8066)




 

三.搭建读写分离:

             0)我们通过 MyCAT 和 MySQL 的主从复制,配合搭建数据库的读写分离,实现 MySQL 的高可用。

             1)一主一从:

                      a:一个主机 用于处理所有写请求,一台从机负责所有读请求。


                      b:搭建 MySQL 数据库 主从复制。
                            -1.MySQL 主从复制原理:(从接入点开始复制,和 redis 不同)(有延时性)
                            -2.(配置看:尚硅谷—高级—MySQL数据库高级_张老师的分享的博客-CSDN博客_尚硅谷mysql

                      c:修改 Mycat 的配置文件 shema.xml:


                      d:启动 MyCAT:
                            -1.直接访问 MyCAT,
                            -2.验证 读写分离:


                            -3.开启读写分离:(配置文件中修改)(设置成 1(双主双从) / 3(单主单从) )(2能看到效果)

                            -4.

                            -5.


             2)双主双从:
                      a:
                            -1.
                            -2.
                            -3.
                            -4.
                            -5.

                      b:
                            -1.
                            -2.
                            -3.
                            -4.
                            -5.

                      c:
                            -1.
                            -2.
                            -3.
                            -4.
                            -5.

                      d:
                            -1.
                            -2.
                            -3.
                            -4.
                            -5.

             3):
                      a:
                      b:
                      c:
                      d:

             4):
                      a:
                      b:
                      c:
                      d:




 

四.垂直拆分—分库:

             1)构思:
                      a:一个数据库,由很多表构成,每个表对应着不同的业务,垂直切分是指按照:业务将表进行分类,分不到不同的数据库上面,这也就将数据 或者说 压力,分担到不同的数据库上面:

                      b:系统被分成了:用户库、订单库、支付库。



                      c:问题:两台主机上的两个数据库表,能否关联查询? 答案:不可以。一台主机上两个库可以(临时表)。
                      d:分库的原则:
                            -1.有紧密关联关系的表,应该在一个库里;相互没有关联关系的表,可以分到不同的库里。

             2)配置分库:
                      a:修改 schema 配置文件:(配置 哪些表,在哪个数据源)




                      b:新增数据库:


                      c:启动 MyCAT:(./mycat console)




 

五.水平拆分—分表:(更复杂)

             1)配置分表:
                      a:分表介绍:
                            -1.相对于 垂直拆分的 分库来说,水平拆分不是将表做分类,而是按照某个字段的某种规则,来分散到多个库中,每个表,包含一部分数据。

                            -2.简单来说,我们可以将 数据的水平切分理解为是:按照数据进行的切分,就是将表中的某些行,切分到另一个库,而另外的某些行,又切分到其他的数据库中。




                      b:配置分表:
                            -1.选择要拆分的表:MySQL 单表1000万条数据,已经是瓶颈了,会影响查询效率,需要做水平拆分(分表),进行优化。
                            -2.不同的表,有不同的划分原则。


                      c:分表字段:


                      d:修改配置文件:schema.xml


                      e:修改配置文件:rule.xml



                      f:在 数据节点 dn2 上,建 orders 表
                      g:重启 Mycat,让配置生效。
                      h:访问 Mycat ,实现分片。




                            -1.
                            -2.
                            -3.
                            -4.
                            -5.

             2)MyCAT 的分片:
                      a:
                            -1.
                            -2.
                            -3.
                            -4.
                            -5.

                      b:
                            -1.
                            -2.
                            -3.
                            -4.
                            -5.

                      c:
                            -1.
                            -2.
                            -3.
                            -4.
                            -5.

                      d:
                            -1.
                            -2.
                            -3.
                            -4.
                            -5.

             3)全局序列:
                      a:
                      b:
                      c:
                      d:

             4):
                      a:
                      b:
                      c:
                      d:

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值