电商六十七、海量数据存储解决方案(数据库集群):mycat分片。

①什么是分片。

简单来说,就是指通过某种特定的条件,将我们存放在同一个数据库中的数据分散存放到多个数据库节点机器上,以达到分散单台设备负载的效果。

数据的切分(分片),根据其切分(分片)的规则的类型,可以分为两种切分(分片)模式:

(1)垂直(纵向)切分(分片)。将同一个数据库的不同的每一张表,分别分到不同的每一个数据库中。如:这个数据库存放这几张表,那个数据库存放另外的几张表。

但垂直(纵向)切分(分片),不能满足我们的需求,因为可能一张表,一台机器节点就存放不下。这时候需要第二种分片(切分)方式。

(2)水平(横向)切分(分片)。将同一张表的数据通过某种条件,拆分到好几台数据库机器节点上。

②mycat分片设置。

通过连接数据库服务器。修改配置。

 

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://org.opencloudb/">

    <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">

TESTDB就是逻辑库的库名,我们程序连接,就连接这个数据库(逻辑库)。这个名字可以自定义。
      


        <table name="travelrecord" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" />

逻辑表,表名字是travelrecord,数据节点有dn1,dn2,dn3,表示这个表travelrecord来自于数据节点:dn1,dn2,dn3。同样dn1,dn2,dn3这个数据节点的名字可以随意取,这个数据节点在后面配置了。

auto-sharding-long按ID值划分(分片)的规则:

1-----500万的ID是第一个分片,也就是dn1这个分片(数据节点)

500万----1000万的ID是第二个分片,也就是dn2这个分片(数据节点)

1000万-----1500万的ID是第三个分片,也就是dn3这个分片(数据节点)

具体这个规则,在哪里配置,后面会说。


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

配置数据节点,dn1,dn2,dn3,dataHost是节点主机,localhost1这个名字可以随意取,后面有配置与之对应。

database="db1"是db1物理库的库名。不是逻辑库。

 

 


    
    <dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
        writeType="0" dbTy

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值