MySQL分库分表

MySQL分库分表

  • 1.分库分表概述
  • 2.拆分策略
    • 2.1 垂直拆分
    • 2.2水平拆分
  • 3.实现技术
  • 4.MyCat
      • 补充
  • 5.MyCat核心概述
  • 6. 案例

1.分库分表概述

======>课程
MySQL分库分表_第1张图片
分库分表的中心思想就是将数据分散存储,使得单一数据库/表的数据量变小来缓解单一数据库的性能问题,从而达到提升数据库性能的目的。

2.拆分策略

======>课程

2.1 垂直拆分

MySQL分库分表_第2张图片

MySQL分库分表_第3张图片
垂直分库:以表为依据,根据业务将不同表拆分到不同数据库中。
1.每个库的表结构都不一样
2.每个库的数据也不一样
3.所有库的并集是全量数据

MySQL分库分表_第4张图片

2.2水平拆分

MySQL分库分表_第5张图片
MySQL分库分表_第6张图片

3.实现技术

MySQL分库分表_第7张图片

4.MyCat

======>课程
Mycat是开源的、活跃的、基于Java语言编写的Mysql数据库中间件,可以像mysql一样来使用mycat。
官网:http://www.mycat.org.cn/
MyCat下载地址:http://dl.mycat.org.cn/

MySQL分库分表_第8张图片
查看服务器是否运行中

上传JDK以及Mycat
MySQL分库分表_第9张图片
配置环境变量
vim /etc/profile

pathmunge () {
    case ":${PATH}:" in
        *:"$1":*)
            ;;
        *)
            if [ "$2" = "after" ] ; then
                PATH=$PATH:$1
            else
                PATH=$1:$PATH
            fi
    esac
}


if [ -x /usr/bin/id ]; then
    if [ -z "$EUID" ]; then
        # ksh workaround
        EUID=`/usr/bin/id -u`
        UID=`/usr/bin/id -ru`
    fi
    USER="`/usr/bin/id -un`"
    LOGNAME=$USER
    MAIL="/var/spool/mail/$USER"
fi

# Path manipulation
if [ "$EUID" = "0" ]; then
    pathmunge /usr/sbin
    pathmunge /usr/local/sbin
else
    pathmunge /usr/local/sbin after
    pathmunge /usr/sbin after
fi

HOSTNAME=`/usr/bin/hostname 2>/dev/null`
if [ "$HISTCONTROL" = "ignorespace" ] ; then
    export HISTCONTROL=ignoreboth
else
    export HISTCONTROL=ignoredups
fi

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL

# By default, we want umask to get set. This sets it for login shell
# Current threshold for system reserved uid/gids is 200
# You could check uidgid reservation validity in
# /usr/share/doc/setup-*/uidgid file
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
    umask 002
else
    umask 022
fi

for i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; do
    if [ -r "$i" ]; then
        if [ "${-#*i}" != "$-" ]; then
            . "$i"
        else
            . "$i" >/dev/null
        fi
    fi
done

unset i
unset -f pathmunge

# jdk1.8
export JAVA_HOME=/usr/local/java/jdk1.8.0_131
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin

# Nodejs
export PATH=/usr/local/node/node-v12.16.3-linux-x64/bin:$PATH

# maven
export MAVEN_HOME=/opt/maven/apache-maven-3.6.3
export PATH=$MAVEN_HOME/bin:$PATH
                                                                                                                                                                                                                                         34,1          Bot

安装MyCat
在这里插入图片描述
MySQL分库分表_第10张图片
删除lib下低版本的mysql-conector-java-5.1.35.jar
MySQL分库分表_第11张图片


MySQL分库分表_第12张图片
对文件修改权限

补充

5.MyCat核心概述

======>MyCat核心概述
MySQL分库分表_第13张图片

6. 案例

MySQL分库分表_第14张图片
环境准备
MySQL分库分表_第15张图片
1.检查三个服务器防火墙
防火墙都关闭是可以的,或者不关闭留有端口号


// TODO

你可能感兴趣的:(Mysql数据库,mysql,数据库)