【MySQL | 运维篇】03、MySQL 分库分表之 MyCat 安装

目录

一、介绍

1.1 问题分析

1.2 拆分策略

1.3 垂直拆分

1. 垂直分库 

2. 垂直分表 

1.4 水平拆分

1. 水平分库 

2. 水平分表 

1.5 实现技术

二、MyCat概述

2.1 介绍

2.2 下载

2.3 安装

1. 上传Mycat压缩包到服务器

2. 解压MyCat的压缩包

3.替换jar包 

2.4 目录介绍

2.5 概念介绍


一、介绍

1.1 问题分析

        随着互联网及移动互联网的发展,应用系统的数据量也是成指数式增长,若采用单数据库进行数据存储,存在以下性能瓶颈:

  • 1. IO瓶颈:热点数据太多,数据库缓存不足,产生大量磁盘IO,效率较低。 请求数据太多,带宽不够,网络IO瓶颈。
  • 2. CPU瓶颈:排序、分组、连接查询、聚合统计等SQL会耗费大量的CPU资源,请求数太多,CPU出现瓶颈。 

 为了解决上述问题,我们需要对数据库进行分库分表处理。

        分库分表的中心思想都是将数据分散存储,使得单一数据库/表的数据量变小来缓解单一数据库的性能问题,从而达到提升数据库性能的目的。 

1.2 拆分策略

        分库分表的形式,主要是两种:垂直拆分和水平拆分。而拆分的粒度,一般又分为分库和分表,所以组成的拆分策略最终如下:

1.3 垂直拆分

1. 垂直分库 

垂直分库:以表为依据,根据业务将不同表拆分到不同库中。

特点:

  • 每个库的表结构都不一样。
  • 每个库的数据也不一样。
  • 所有库的并集是全量数据。 

2. 垂直分表 

垂直分表:以字段为依据,根据字段属性将不同字段拆分到不同表中。

特点:

  • 每个表的结构都不一样。
  • 每个表的数据也不一样,一般通过一列(主键/外键)关联。
  • 所有表的并集是全量数据。 

1.4 水平拆分

1. 水平分库 

水平分库:以字段为依据,按照一定策略,将一个库的数据拆分到多个库中。

特点: 

  • 每个库的表结构都一样。
  • 每个库的数据都不一样。
  • 所有库的并集是全量数据。

2. 水平分表 

水平分表:以字段为依据,按照一定策略,将一个表的数据拆分到多个表中。

特点:

  • 每个表的表结构都一样。
  • 每个表的数据都不一样。
  • 所有表的并集是全量数据。 

        在业务系统中,为了缓解磁盘IO及CPU的性能瓶颈,到底是垂直拆分,还是水平拆分;具体是分库,还是分表,都需要根据具体的业务需求具体分析。 

1.5 实现技术

  • shardingJDBC:基于AOP原理,在应用程序中对本地执行的SQL进行拦截,解析、改写、路由处理。需要自行编码配置实现,只支持java语言,性能较高。
  • MyCat:数据库分库分表中间件,不用调整代码即可实现分库分表,支持多种语言,性能不及前者。 

二、MyCat概述

2.1 介绍

        Mycat是开源的、活跃的、基于Java语言编写的MySQL数据库中间件。可以像使用mysql一样来使用mycat,对于开发人员来说根本感觉不到mycat的存在。

        开发人员只需要连接MyCat即可,而具体底层用到几台数据库,每一台数据库服务器里面存储了什么数据,都无需关心。 具体的分库分表的策略,只需要在MyCat中配置即可。

优势:

  • 性能可靠稳定
  • 强大的技术团队
  • 体系完善
  • 社区活跃 

2.2 下载

MyCat 1.6官网: Mycat1.6 

MyCat 下载地址:Index of /

2.3 安装

        Mycat是采用java语言开发的开源的数据库中间件,支持Windows和Linux运行环境,下面介绍MyCat的Linux中的环境搭建。我们需要在准备好的服务器中安装如下软件。

  • MySQL
  • JDK
  • Mycat 
服务器安装软件说明
192.168.78.139MySQL、JDK、MyCatMyCat中间件服务器、分片服务器
192.168.78.140MySQL分片服务器
192.168.78.141MySQL分片服务器

MySQL 安装步骤:CentOS 7 安装&卸载 MySQL 8 详细图文教程_Stars.Sky的博客-CSDN博客_centos7 mysql8 卸载 

JDK 安装步骤:Linux部署JDK+MySQL+Tomcat详细过程_Stars.Sky的博客-CSDN博客 

MyCat 安装步骤:

1. 上传Mycat压缩包到服务器

2. 解压MyCat的压缩包

tar -zxvf Mycat-server-1.6.7.3-release-20210913163959-linux.tar.gz -C /usr/local/

3.替换jar包 

        查看 /usr/local/mycat/lib 目录下找到 mysql-connector-java-5.1.35.jar ,版本过低,删除并替换与mysql同版本的java包:

[root@sql-master lib]# pwd
/usr/local/mycat/lib

[root@sql-master lib]# rm -rf mysql-connector-java-5.1.35.jar

# 上传 8.0.30 jar包并加权限
[root@sql-master lib]# chmod 777 mysql-connector-java-8.0.30.jar

 不同版本mysql-connector-java的jar包下载地址:MySQL :: Download MySQL Connector/J (Archived Versions)

 

2.4 目录介绍

  • bin : 存放可执行文件,用于启动停止mycat
  • conf:存放mycat的配置文件
  • lib:存放mycat的项目依赖包(jar)
  • logs:存放mycat的日志文件 

2.5 概念介绍

在MyCat的整体结构中,分为两个部分:上面的逻辑结构、下面的物理结构。

        在MyCat的逻辑结构主要负责逻辑库、逻辑表、分片规则、分片节点等逻辑结构的处理,而具体的数据存储还是在物理结构,也就是数据库服务器中存储的。 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Stars.Sky

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值