MyCat - 分片 - 垂直拆分 - 测试 | 学习笔记

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 快速学习 MyCat - 分片 - 垂直拆分 - 测试

开发者学堂课程【全面讲解开源数据库中间件MyCat使用及原理(二):MyCat - 分片 - 垂直拆分 - 测试】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/756/detail/13260


MyCat - 分片 - 垂直拆分 - 测试

内容介绍:

一、测试步骤

二、查询数据

三、插入数据

 

一、测试步骤

接下来对所配置的垂直分片的配置进行测试,首先重新启动 Mycat,要执行的是bin/mycat rastart,重新登录 mycat,执行 show databases 指令,可以看到 DATABASE 变成了 ITCAST_DB ,原因是现在的逻辑库库名为 ITCAST_DB

image.png

在逻辑库中有多个逻辑表

<schema name=”ITCAST_DB” checkSQLschema=”false” sqlMaxLimit=”100”>

<table name=”tb_areas_city” dataNode=”dn1” primaryKey=”id”/>

<table name=”tb_areas_provinces” dataNode=”dn1” primaryKey=”id”/>

<table name=”tb_areas_region” dataNode=”dn1” primaryKey=”id”/>

<table name=”tb_user” dataNode=”dn1” primaryKey=”id”/>

<table name=”tb_user_address” dataNode=”dn1” primaryKey=”id”/>

<table name=”tb_goods_base” dataNode=”dn2” primaryKey=”id”/>

<table name=”tb_goods_desc” dataNode=”dn2” primaryKey=”goods_id”/>

<table name=”tb_goods_item_cat” dataNode=”dn2” primaryKey=”id”/>

<table name=”tb_order_item” dataNode=”dn3” primaryKey=”id”/>

<table name=”tb_order_master” dataNode=”dn3” primaryKey=”order_id”/>

<table name=”tb_order_pay_log” dataNode=”dn3” primaryKey=”out_trade_no”/>

</schema>

切换数据库,

mysql> use ITCAST_ DB;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

然后执行 show databases,里面有关于用户的表、关于商品的表和关于订单的表

image.png

虽然这块在操作的时候,各个数据库中存储了很少一部分表,但是最终访问的是mycat,访问 mycat,mycat 当中就配置了这些逻辑表,并设置这些数据表在哪个数据节点当中存储的,这样的话就能看到系统当中所有的表。

 

二、查询数据

如果想要查询全部的商品信息,商品信息是存储在 158 里面,再来执行select*from tb_user,查看所有用户信息,用户信息是存储在 157 上面的,输入 select*from tb_order_master 来查看订单信息。以上数据都能正常查询并返回,也代表着刚才配置的 mycat 垂直拆分的配置是正确的。

查询使用的语句为:

Selec*from tb_ goods_ base;

Select*from tb_ user;

Select*from tb_ order_ master ;

 

三、插入数据

1)插入 user_address 表

insert into

tb_ user_ address(id,user_ id,province. id,city_ id, town_ id,mobile,address,contact , is_ _default,notes,create. _date,alias) values (nu11,'java00001' ,NULL , NULL , NULL, ' 13900112222'. '钟楼',张三','0',NULL ,NULL ,NULL)

插入 user 是插入到 157 界面

2)插入 order 表

insert into tb_ order _item(id, item_ id, goods_ id,order . _id,title,pr ice,num,total fee,pic path,seller_id)

values (nu11,19, 149187842867954,3,'3G 6','1.00",5,'5. 00' ,NULL, 'qiandu')

Order 是插入到 159 上面,代码出现错误

ERROR 1048(HY000) : Column ‘id' cannot be nu11

需要去指定一个 ID

image.png

接下来再来查询 tb_ order _item,输入代码 select*from tb_ order _item

这块的操作直接操作 mycat,不要操作 mysql,因为应用程序最后是操作 mycat,把 mycat 当成 mysql 操作。

3)测试跨分片的查询

SELECT order_id ,payment ,receiver, province ,city ,area FROM tb. _order. master。,tb_ _areas_ provinces p,tb_ _areas_ city C,tb_ _areas_ region r

WHERE o.receiver. _province = p. provinceid AND o.receiver. city = c.cityid AND o.receiver. region =r .areaid;

当运行上述的 SQL 语句时,MyCat 会报错, 原因是因为当前 SQL 语句涉及到跨域的 join 操作;这次的查询是多表联合查询。它要查询的是订单的信息,以及这个订单关联的省份、城市和区域的信息。SQL 语句关联的表有四张表,通过三个条件进行消除。执行一下 SQL 语句,在执行的时候发现这块出现了报错

image.png

报错内容为这条 SQL 无效路由,并且在多个表发现但是数据节点却没有进行结合。也就是说这里涉及到跨库的操作。虽然这块涉及的操作是 mycat,最终 mycat的还是将 SQL 语句发送到 Mysql 里面,这块设计的表有 order 表,Order 的表在159 这台服务器上,还涉及到 areas,用户的区域相关的表,这张表存放在 157 上面,这就是跨库连接查询。于是这时候 mycat 会报错,原因是因为当前 SQL 语句涉及到跨域的 join 操作。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
Java 测试技术 编译器
JMM测试利器-JCStress学习笔记
JMM测试利器-JCStress学习笔记
|
8月前
java202303java学习笔记第四十六天-请求-postman接口测试
java202303java学习笔记第四十六天-请求-postman接口测试
54 0
|
11月前
|
测试技术
java202304java学习笔记第六十天-ssm-spring配置文件-完善测试环境
java202304java学习笔记第六十天-ssm-spring配置文件-完善测试环境
52 0
|
存储 缓存 NoSQL
测试思想-测试设计 关于测试用例设计的一点感想(优先级与拆分合并设计)
测试思想-测试设计 关于测试用例设计的一点感想(优先级与拆分合并设计)
80 0
|
关系型数据库 OLAP API
测试 API|学习笔记
快速学习测试 API
117 0
测试 API|学习笔记
|
存储 SQL 监控
PolarDB-X 进行 TP 负载测试(三)| 学习笔记
快速学习 PolarDB-X 进行 TP 负载测试。
301 0
PolarDB-X 进行 TP 负载测试(三)| 学习笔记
|
SQL 存储 关系型数据库
PostgreSQL 流复制搭建主从环境,同步和异步的解释,压力测试,主从角色切换|学习笔记
快速学习PostgreSQL 流复制搭建主从环境,同步和异步的解释,压力测试,主从角色切换
734 0
PostgreSQL 流复制搭建主从环境,同步和异步的解释,压力测试,主从角色切换|学习笔记
|
16天前
|
测试技术 C语言
网站压力测试工具Siege图文详解
网站压力测试工具Siege图文详解
24 0
|
1月前
|
JavaScript jenkins 测试技术
这10款性能测试工具,收藏起来,测试人的工具箱!
这10款性能测试工具,收藏起来,测试人的工具箱!
|
1月前
|
测试技术
现代软件测试中的自动化工具与挑战
传统软件测试面临着越来越复杂的系统架构和不断增长的测试需求,自动化测试工具应运而生。本文将探讨现代软件测试中自动化工具的应用和挑战,深入分析其优势与局限性,为软件测试领域的发展提供思路和启示。

热门文章

最新文章