Bootstrap

MySQL运维篇(2)—分库分表

目录

一、分库分表

1.1 介绍

1.1.1 问题分析

1.1.2 拆分策略

1.1.3 垂直拆分

1.1.4 水平拆分

1.1.5 实现技术

1.2 MyCat概述

1.2.1 介绍

1.2.2 下载

1.2.3 安装

1.2.4 目录介绍

1.2.5 概念介绍

1.3 MyCat入门

1.3.1 需求

1.3.2 环境准备

1.3.3 配置

1.3.4 测试

1.4 MyCat配置

1.4.1 schema.xml

1.4.2 rule.xml

1.4.3 server.xml

1.5 MyCat分片

1.5.1 垂直拆分

1.5.2 水平拆分

1.5.3 分片规则


一、分库分表

1.1 介绍

1.1.1 问题分析

1.1.2 拆分策略

1.1.3 垂直拆分

1.1.4 水平拆分

1.1.5 实现技术

1.2 MyCat概述

1.2.1 介绍

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

优势:

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

1.2.2 下载

下载地址:http://dl.mycat.org.cn/

1.2.3 安装

1.2.4 目录介绍

1.2.5 概念介绍

1.3 MyCat入门

1.3.1 需求

1.3.2 环境准备

1.3.3 配置

上述的配置表示,定义了两个用户root 和user,这两个用户都可以访问DB01这个阔疾苦,访问密码都是123456,但是root用户访问DB01逻辑库,既可以读又可以写,但是user用户访问DB01逻辑库是只读的

1.3.4 测试

  • 启动

  • 测试

1.4 MyCat配置

1.4.1 schema.xml

schema.xml 作为MyCat中最重要的配置文件之一,涵盖了MyCat的逻辑库、逻辑表、分片规则、分片节点及数据源的配置

主要包含以下三组标签

  1. schema标签
  2. datanode标签
  3. datahost标签
  • schema标签

  • dataNode标签

  • dataHost标签

1.4.2 rule.xml

1.4.3 server.xml

在测试权限操作时,只需要将privileges标签的注释放开。在privileges下的schema标签中配置的dml属性配置的是逻辑库的权限。在privileges的schema下的table标签的dml属性中配置逻辑表的权限。

1.5 MyCat分片

1.5.1 垂直拆分

  • 场景

在业务系统中,涉及以下表结构,但是由于用户与订单每天都会产生大量的数据,单台服务器的数据存储及处理能力是哟许欸你的, 可以对数据库表进行拆分,原有的数据库表如下。

  •  准备

  • 配置

  •  测试

  •  全局表

1.5.2 水平拆分

  • 场景

        在业务系统中,有一张表(日志表),业务系统每天都会产生大量的日志数据,单台服务器的数据存储及处理能力是有限的,可以对数据库表进行拆分。

  • 准备

  • 配置

  •  测试

        配置完毕后,重新启动MyCat,然后再mycat的命令行中,之下如下SQL创建表、并插入数据、查看数据分布情况

1.5.3 分片规则

  • 范围分片

 

  • 取模分片

  • 一致性hash分片

  • 枚举分片

  • 应用指定算法

  • 固定分片hash算法

  • 字符串hash解析

  • 按天分片算法

 按照日期及对应的时间周期来分片

 

  • 自然月分片

  

1.6 MyCat管理及监控

1.6.1 MyCat原理

1.6.2 MyCat管理

1.6.3 MyCat-eye

  • 介绍

        Mycat-web(Mycat-eye)是对Mycat-server提供监控服务,功能不局限于对Mycat-server使用。他通过JDBC连接对Mycat、Mysql监控,监控远程服务器(目前仅限于Linux系统)的cpu、内存、网络、磁盘。

        Mycat-eye运行过程中需要历来zookeeper,因此需要先安装zookeeper

  • 安装

  • 配置

  • 测试

;