Mycat 读写分离+分库分表

本文详细介绍了如何利用Mycat实现读写分离和分库分表,通过配置dataNode、dataHost及schema.xml,展示了在不同数据库服务器上的分库分表操作,并探讨了读写分离的配置方法,包括主从复制环境的建立。通过实例测试,阐述了Mycat在数据路由和读取方面的功能。
摘要由CSDN通过智能技术生成
          上次进过GTID复制的学习记录,已经搭建好了主从复制的服务器,现在利用现有的主从复制环境,加上正在研究的Mycat,实现了主流分布式数据库的测试




Mycat就不用多介绍了,可以实现很多分布式数据库的功能,极大的减轻数据库服务器的压力,包括读写分离以及分库分表,本测试对这两种功能都进行了测试,进行相应记录




本文以Mycat官方给出的例子来进行解释总结




首先来看分库分表,分库分表一般来说都是一起说的,但是实际上分库跟分表是有区别的,简单来说有垂直和水平两种方式,垂直就是将表按字段进行拆分,水平就是将表按照数据分布来做行拆分。具体的肯定还是有区别,本文不再进行阐述,主要介绍按照字段的分布进行数据行的拆分




本身理解来说Mycat实现的应该是分库,也就是将一个表的行分开存储到不同的数据库中,这里不同的数据库可以有一下两种


1)不同的数据库服务器上的 两个数据库(此时db的名字可以相同,也可以不同)


2)相同的数据库服务器上的两个数据库(此时db的名字肯定是不同的)




当然对于实际使用分库来说肯定是使用不同的数据库服务器的,而且大多数都是在不同的服务器上使用相同的名字,这样能够比较正式的做法




分表的关键部分在mycat的配置文件schema.xml中,该文件中定义了数据库服务器,表的拆分规则等等重要信息
<table name="employee" primaryKey="ID" dataNode="dn1,dn2"  rule="sharding-by-intfile" />
以该配置为例,在mycat的逻辑数据库中定义employee表,主键是ID字段,分表规则是sharding-by-intfile,该规则可以在rule.xml中找到对应的信息,而拆分的数据节点是dn1和dn2,数据节点是mycat的概念,再来看看dn1 和dn2 的配置


<dataNode name="dn1" dataHost="localhost1" database="db1" />
<dataNode name="dn2" dataHost="localhost2" database="db1" />


当然上面的配置是在将employee表的数据分配到两个数据库服务器上分别是localhost1和localhost2


同样也可以如下配置


<dataNode name="dn1" dataHost="localhost1" database="db1" />
<dataNode name="dn2" dataHost="localhost1" database="db2" />


这样的配置就在localhost1上建立两个数据库分别是db1和db2,将数据存在同一个数据库实例上的两个数据库上
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值