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

导读:本篇文章讲解 【MySQL | 运维篇】03、MySQL 分库分表之 MyCat 安装,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

目录

一、介绍

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 问题分析

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

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

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

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

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

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

1.2 拆分策略

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

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

1.3 垂直拆分

1. 垂直分库 

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

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

特点:

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

2. 垂直分表 

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

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

特点:

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

1.4 水平拆分

1. 水平分库 

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

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

特点: 

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

2. 水平分表 

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

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

特点:

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

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

1.5 实现技术

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

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

二、MyCat概述

2.1 介绍

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

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

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

优势:

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

2.2 下载

MyCat 1.6官网: Mycat1.6 

MyCat 下载地址:Index of /

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

2.3 安装

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

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

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

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

MyCat 安装步骤:

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

【MySQL | 运维篇】03、MySQL 分库分表之 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)

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

2.4 目录介绍

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

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

2.5 概念介绍

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/74577.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!