当前位置: 首页 > news >正文

【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张表 #查看表信息,可以看到成功分库

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

http://www.jsqmd.com/news/304543/

相关文章:

  • 【MyCat】第5章----水平拆分——分表
  • ​​​​​​​刷爆朋友圈的“香蕉模型”,到底是什么来头?
  • 深入解析:python3GUI--短视频社交软件 By:Django+PyQt5(前后端分离项目)
  • hot100 105.从前序与中序遍历序列构造二叉树
  • hot100 437.路径总和Ⅲ
  • hot100 236.二叉树的最近公共祖先
  • 考研C语言专题练习
  • 太阳敏感器的高精度补偿标定方法
  • 鼎先电子提供200多款从单通道到多通道的ESD防护器件,快充ESD解决方案
  • 大功率防雷器件,低容集成阵列TVS
  • SOD-523二极管提供1线ESD保护(单向和双向)。这些器件符合IEC 61000-4-2标准DC0501D5 DC0521D5
  • 7个 Golang 官方文档没细说的高效技巧
  • 代码通胀时代,AI生成的代码需要 12 倍审查成本?
  • c++ release下的debug
  • ssl免费证书与收费证书有什么区别
  • 应用程序嵌入插件需要具备什么条件
  • 给一个应用程序编写插件工作指南
  • 如何在应用程序中安装插件并使用
  • 当蝗虫玩起了概率游戏:HCUGOA的整活现场
  • Spring Boot 项目使用 EasyExcel 实现导出功能
  • 人群仿真软件:Vadere_(11).Vadere与其他仿真软件的比较
  • [Web自动化] 处理爬虫异常
  • [Web自动化] 爬虫之网络请求
  • 国产CAD这笔软件授权费,省得有点心疼
  • 导师严选10个AI论文平台,助研究生轻松搞定论文写作!
  • 国产CAD仿真分析,把破坏性试验留在屏幕里
  • 一口气看懂!多模态大模型是个啥?能帮我们干啥?
  • 给服务器起个“网名叫啥“?聊聊云服务器域名那些事儿
  • 一只蒟蒻的florr前期攻略(随本人更新,具有较强的真实性)
  • 广东视频号广告代理:厚拓科技11年深耕,赋能华南企业短视频营销新增长