Mycat_全局表

Posted chensstudy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mycat_全局表相关的知识,希望对你有一定的参考价值。

Mycat_全局表开发目的、使用场景:

在分片的情况下,当业务表因为规模而进行分片以后,业务表与这些附属的字典表之间的关联,就成了比较棘手的问题,考虑到字典表具有以下几个特性:

    变动不频繁

    数据量总体变化不大

    数据规模不大,很少有超过数十万条记录。

 

鉴于此,MyCAT 定义了一种特殊的表,称之为“全局表”,全局表具有以下特性:

    插入、更新操作会实时在所有节点上执行,保持各个分片的数据一致性

    查询操作,只从一个节点获取

    可以跟任何一个表进行 JOIN 操作

 

MyCAT 可以满足 80%以上的企业应用开发。全局表有点类似于RAID 1,写的时候多份写入,读的时候从任意节点读取即可。

Mycat全局表的配置

全局表配置比较简单,不用写 Rule 规则,修改schema.xml即可。

注意:全局表每个分片节点上都会运行创建表的 DDL 语句。

 

Schema.xml

<?xml version="1.0"?>

<!DOCTYPE mycat:schema SYSTEM "schema.dtd">

<mycat:schema xmlns:mycat="http://io.mycat/">

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

<!--全局表设置,不需要设置分片格式-->

<table name="t_test1" primaryKey="ID" type="global" dataNode="dn1,dn2,dn3"   />

</schema>

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

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

<dataNode name="dn3" dataHost="localhost1" database="db3" />

<!--设置读写一体的数据库-->

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

  writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">

<heartbeat>select user()</heartbeat>

<writeHost host="hostM1" url="localhost:3306" user="root"

   password="123456">

</writeHost>

</dataHost>

</mycat:schema>

以上是关于Mycat_全局表的主要内容,如果未能解决你的问题,请参考以下文章

mycat:全局表

mycat 读写分离+分库分表+全局表

mycat 读写分离+分库分表+全局表

MyCat实现读写分离+分库分表+全局表

MySQL 部署分布式架构 MyCAT

mycat读写分离+垂直切分+水平切分+er分片+全局表 测试