news 2026/6/10 14:38:18

【MyCat】第4章 ----垂直拆分——分库

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【MyCat】第4章 ----垂直拆分——分库

文章目录

  • 4.1 如何划分表
  • 4.2 实现分库
    • 1、 修改 schema 配置文件
    • 2、 新增两个空白库
    • 3、 启动 Mycat
    • 4、 访问 Mycat 进行分库

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

系统被切分成了,用户,订单交易,支付几个模块。

4.1 如何划分表

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

#客户表 rows:20万 CREATETABLEcustomer(idINTAUTO_INCREMENT,NAMEVARCHAR(200),PRIMARYKEY(id));#订单表 rows:600万 CREATETABLEorders(idINTAUTO_INCREMENT,order_type INT,customer_id INT,amountDECIMAL(10,2),PRIMARYKEY(id));#订单详细表 rows:600万 CREATETABLEorders_detail(idINTAUTO_INCREMENT,detailVARCHAR(2000),order_id INT,PRIMARYKEY(id));#订单状态字典表 rows:20CREATETABLEdict_order_type(idINTAUTO_INCREMENT,order_typeVARCHAR(200),PRIMARYKEY(id));

以上四个表如何分库?客户表分在一个数据库,另外三张都需要关联查询,分在另外一个数据库。

4.2 实现分库

1、 修改 schema 配置文件

....<schema name="TESTDB"checkSQLschema="false"sqlMaxLimit="100"dataNode="dn1"><table name="customer"dataNode="dn2"></table></schema><dataNode name="dn1"dataHost="host1"database="orders"/><dataNode name="dn2"dataHost="host2"database="orders"/><dataHost name="host1"maxCon="1000"minCon="10"balance="0"writeType="0"dbType="mysql"dbDriver="native"switchType="1"slaveThreshold="100"><heartbeat>selectuser()</heartbeat><!--可配置多个写主机--><writeHost host="hostM1"url="192.168.140.128:3306"user="root"password="123123"></writeHost></dataHost><dataHost name="host2"maxCon="1000"minCon="10"balance="0"writeType="0"dbType="mysql"dbDriver="native"switchType="1"slaveThreshold="100"><heartbeat>selectuser()</heartbeat><!--可配置多个写主机--><writeHost host="hostM2"url="192.168.140.127:3306"user="root"password="123123"></writeHost></dataHost>....

2、 新增两个空白库

分库操作不是在原来的老数据库上进行操作,需要准备两台机器分别安装新的数据库
#在数据节点 dn1、dn2 上分别创建数据库 orders
CREATE DATABASE orders;

3、 启动 Mycat

./mycat console

4、 访问 Mycat 进行分库

#访问Mycatmysql-umycat-p123456-h192.168.140.128-P8066#切换到 TESTDB #创建4张表 #查看表信息,可以看到成功分库

如果文章对你有一点点帮助,欢迎【点赞、留言、+ 关注】
您的关注是我创作的动力!若有疑问/交流/需求,欢迎留言/私聊!
多一个朋友多一条路!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 11:39:48

【计算机毕业设计案例】基于springboot的个人健康管理系统基于springboot个人健康档案管理系统(程序+文档+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/6/10 11:41:35

【Docker】解决Docker容器时间与宿主机时间不一致的几种方法

一、介绍 由于Docker容器内的时间默认是 UTC 世界标准时间&#xff0c;而宿主机时间为 CST 中国标准时间&#xff08;东八区&#xff0c;Asia/Shanghai&#xff09;&#xff0c;时间相差8小时&#xff0c;根本原因是时区问题。因此&#xff0c;需要为Docker容器配置正确的时区&…

作者头像 李华
网站建设 2026/6/5 18:13:58

直播美颜SDK怎么选?从人脸美型效果、性能与成本全面分析

在直播行业卷到“美颜都快成标配”的今天&#xff0c;不管你是做直播平台、社交产品&#xff0c;还是短视频、电商直播&#xff0c;选对一款直播美颜SDK&#xff0c;往往直接影响用户留存率和产品口碑。 问题是&#xff1a; 市面上的直播美颜SDK这么多&#xff0c;看起来功能都…

作者头像 李华
网站建设 2026/6/10 6:26:31

嵌入式系统设计师软考个人笔记<3>

1.1 嵌入式系统电源管理1.1.1 电源系统基础定义&#xff1a;为嵌入式设备提供稳定、合规直流电能的子系统&#xff0c;通常将交流市电或电池电源转换为系统所需的直流电压等级。供电类型&#xff1a;市电供电&#xff1a;通过AC-DC转换模块&#xff08;如开关电源&#xff09;提…

作者头像 李华
网站建设 2026/6/10 10:24:39

解码内部集成电路(IIC)与OLED屏

内部集成电路&#xff08;IIC/I2C&#xff09; 基本概念 英文全称Inter Integrated Circuit&#xff0c;简称IIC或I2C&#xff0c;是半双工同步串行通信接口协议1982年由飞利浦公司&#xff08;现恩智浦半导体&#xff09;设计推出设计初衷&#xff1a;为微控制器&#xff08;…

作者头像 李华
网站建设 2026/6/10 10:26:21

稳定细胞系构建 | 稳定株开发服务 | 高表达克隆筛选

稳定细胞系构建是细胞生物学、分子生物学和蛋白质工程等众多科研领域中广泛采用的一项基础技术。所谓稳定细胞系&#xff0c;是指通过遗传整合外源基因的方式&#xff0c;使细胞在长期传代过程中持续稳定表达目标蛋白&#xff08;或其它功能元件&#xff09;的细胞系。这类细胞…

作者头像 李华