Mycat中如何配置schmea.xml
这篇文章主要为大家展示了"Mycat中如何配置schmea.xml",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Mycat中如何配置schmea.xml"这篇文章吧。
1.基本环境
| dn1 | localhost1 | 192.168.6.121:3306---writehost 192.168.6.121:3307---readhost 192.168.6.121:3308 |
| dn2 | locahost2 | 192.168.6.120:3306---writehost 192.168.6.120:3307---readhost 192.168.6.121:3308 |
| dn3 | localhost3 | 192.168.6.119:3306---writehost 192.168.6.119:3307---readhost 192.168.6.119:3308 |
2.schemal配置
dataNode="dn1"> ---默认数据节点,若新建一张表company2未在配置文件中配置,则默认建立在dn1数据节点上(私有表) ---分片表,根据对应的分片规则 分片到各个物理节点上
---全局表,每个节点上都有的表
---等同于company
----等同于company2
rule="mod-long" />
rule="sharding-by-intfile" />
rule="sharding-by-intfile">
parentKey="id">
parentKey="id" />
parentKey="id" />
----数据节点对应的localhost以及真实的数据库 balance="2" ------localhosts对应的连接配置信息 writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
select user() password="ESBecs00">
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
select user() password="ESBecs00">
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
select user() password="ESBecs00">
......未完待续
全局表的查询有负载均衡的作用mysql> select * from company; ----本应该是相同的数据,改为不同的数据是为了展示负载均衡的效果
+----+-------------+
| id | name |
+----+-------------+
| 1 | this is 119 |
+----+-------------+
1 row in set (0.01 sec)
mysql> select * from company;
+----+-------------+
| id | name |
+----+-------------+
| 1 | this is 120 |
+----+-------------+
1 row in set (0.01 sec)
mysql> select * from company;
+----+-------------+
| id | name |
+----+-------------+
| 1 | this is 121 |
+----+-------------+
1 row in set (0.00 sec)
分片表和私有表如果不在一哥节点上就联合查不到了!
uc分片表,4101在第二个节点上
act为私有表,4101在第一个节点上
select * from uc_coupon where COUPON_ID=4101 ; --单独查,是有的
select * from act_vote_info where id=4101; ---单独查,是有的
select a.*,b.* from uc_coupon a,act_vote_info b where a.COUPON_ID=b.id and b.id=4101 limit 1; --联合查,查不到了,因为跨节点了!
举例:mysql> select * from order2; ---分片表
+----+----------+---------+---------------------+
| ID | PROVINCE | SN | CREATE_TIME |
+----+----------+---------+---------------------+
| 2 | shanghai | 2BJ0001 | 2017-05-09 15:01:33 | ---节点2上
| 1 | beijing | 2BJ0001 | 2017-04-23 21:48:08 | ---节点1上
| 3 | tianjin | 2BJ0001 | 2017-05-09 15:01:45 |
+----+----------+---------+---------------------+
3 rows in set (0.00 sec)
mysql> select * from tt; ---私有表 节点1上
+------+------------+
| id | name |
+------+------------+
| 2 | zhangsanli |
| 1 | 12314 |
+------+------------+
2 rows in set (0.00 sec)
mysql> select a.*,b.* from tt a,order2 b where a.id=b.ID and b.id=2; -----2和私有表不在一个节点上,查不出来
Empty set (0.00 sec)
mysql> select a.*,b.* from tt a,order2 b where a.id=b.ID and b.id=1; -----1和私有表在一个节点上,所以查的出来
+------+-------+----+----------+---------+---------------------+
| id | name | ID | PROVINCE | SN | CREATE_TIME |
+------+-------+----+----------+---------+---------------------+
| 1 | 12314 | 1 | beijing | 2BJ0001 | 2017-04-23 21:48:08 |
+------+-------+----+----------+---------+---------------------+
1 row in set (0.00 sec)
同理:分片表和分片表条件数据如果不在一个节点上就联合查不到了!
mysql> select a.* ,b.* from order2 a,order3 b where a.id=b.id and a.id=2; --单独都是有数据的,但是id相等的分在不同的节点上,还是不能跨节点
Empty set (0.00 sec)
mysql> select * from order2;
+----+----------+---------+---------------------+
| ID | PROVINCE | SN | CREATE_TIME |
+----+----------+---------+---------------------+
| 2 | shanghai | 2BJ0001 | 2017-05-09 15:01:33 |
| 1 | beijing | 2BJ0001 | 2017-04-23 21:48:08 |
| 3 | tianjing | 2BJ0001 | 2017-05-15 14:52:17 |
+----+----------+---------+---------------------+
3 rows in set (0.00 sec)
mysql> select * from order3;
+----+----------+---------+---------------------+
| ID | PROVINCE | SN | CREATE_TIME |
+----+----------+---------+---------------------+
| 2 | beijing | 2BJ0001 | 2017-05-15 14:56:27 |
| 1 | tianjing | 2BJ0001 | 2017-05-15 14:56:35 |
| 3 | shanghai | 2BJ0001 | 2017-05-15 14:56:17 |
+----+----------+---------+---------------------+
3 rows in set (0.00 sec)解决办法:注解,详细用法见文档
mysql> /*!mycat:catlet=demo.catlets.ShareJoin */ select b.sn,b.CREATE_TIME,a.CREATE_TIME from order2 a,order3 b where a.id=b.id;
+---------------------+----+---------+---------------------+
| CREATE_TIME | id | sn | CREATE_TIME |
+---------------------+----+---------+---------------------+
| 2017-04-23 21:48:08 | 1 | 2BJ0001 | 2017-05-15 14:56:35 |
| 2017-05-09 15:01:33 | 2 | 2BJ0001 | 2017-05-15 14:56:27 |
| 2017-05-15 14:52:17 | 3 | 2BJ0001 | 2017-05-15 14:56:17 |
+---------------------+----+---------+---------------------+
以上是"Mycat中如何配置schmea.xml"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
节点 数据 配置 私有 内容 篇文章 联合 不同 均衡 全局 学习 帮助 相同 作用 信息 办法 效果 数据库 文件 文档 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网加科技 互联网科技公司起名 蓝思科技飞鸽互联网 科技互联网企业 科技企业和互联网企业 互联网科技卖菜 致聘互联网科技 长亮科技 互联网金融 人人互联网科技是培训 居家互联网科技有限公司 西藏七维空间互联网科技有限公司 华服互联网科技官网 工业互联网等科技实现智能化赋能 为客找房互联网科技公司怎么样 有人说阿里系是互联网科技企业 35岁以上互联网科技行业 西安左小互联网科技有限公司 科技和互联网行业的特点 互联网科技对化妆品行业 网互联网络科技 涨乐互联网科技 广州凡科互联网科技 佰商互联网科技有限公司 中国互联网金融科技基金 美国互联网前沿科技 欧洲十大科技互联网公司 南山科技园互联网公司有哪些 中国航天科技大学国际工业互联网 朱啸虎曾投资哪些互联网科技企业 互联网公司属于科技吗相关文章