MySQL 部署分布式架构 MyCAT (五)

分片(水平拆分)

4.全局表

1业务使用场景: 2如果你的业务中有些数据类似于数据字典,比如配置文件的配置, 3常用业务的配置或者数据量不大很少变动的表,这些表往往不是特别大, 4而且大部分的业务场景都会用到,那么这种表适合于Mycat全局表,无须对数据进行切分, 5要在所有的分片上保存一份数据即可,Mycat 在Join操作中,业务表与全局表进行Join聚合会优先选择相同分片内的全局表join, 6避免跨库Join,在进行数据插入操作时,mycat将把数据分发到全局表对应的所有分片执行,在进行数据读取时候将会随机获取一个节点读取数据。 7 8 9cd /data/mycat/conf 10cp schema.xml schema.xml.intfile 11 12vi schema.xml 13<?xml version="1.0"?> 14<!DOCTYPE mycat:schema SYSTEM "schema.dtd"> 15<mycat:schema xmlns:mycat="http://io.mycat/"> 16<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="sh1"> 17 <table name="t_area" dataNode="sh1,sh2" primaryKey="id" type="global" /> 18</schema> 19 <dataNode name="sh1" dataHost="oldguo1" database= "taobao" /> 20 <dataNode name="sh2" dataHost="oldguo2" database= "taobao" /> 21 <dataHost name="oldguo1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="1"> 22 <heartbeat>select user()</heartbeat> 23 <writeHost host="db1" url="192.168.31.205:3307" user="root" password="123"> 24 <readHost host="db2" url="192.168.31.205:3309" user="root" password="123" /> 25 </writeHost> 26 <writeHost host="db3" url="192.168.31.206:3307" user="root" password="123"> 27 <readHost host="db4" url="192.168.31.206:3309" user="root" password="123" /> 28 </writeHost> 29 </dataHost> 30 <dataHost name="oldguo2" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="1"> 31 <heartbeat>select user()</heartbeat> 32 <writeHost host="db1" url="192.168.31.205:3308" user="root" password="123"> 33 <readHost host="db2" url="192.168.31.205:3310" user="root" password="123" /> 34 </writeHost> 35 <writeHost host="db3" url="192.168.31.206:3308" user="root" password="123"> 36 <readHost host="db4" url="192.168.31.206:3310" user="root" password="123" /> 37 </writeHost> 38 </dataHost> 39</mycat:schema>

准备数据

1mysql -S /data/3307/mysql.sock -e "use taobao;create table t_area (id int not null primary key auto_increment,name varchar(20) not null);" 2mysql -S /data/3308/mysql.sock -e "use taobao;create table t_area (id int not null primary key auto_increment,name varchar(20) not null);" 3 4mycat restart 5mysql -uroot -p123456 -h127.0.0.1 -P8066 6 7use TESTDB 8insert into t_area(id,name) values(1,'a'); 9insert into t_area(id,name) values(2,'b'); 10insert into t_area(id,name) values(3,'c'); 11insert into t_area(id,name) values(4,'d');

检查

1mysql -S /data/3307/mysql.sock -e "use taobao;select * from t_area;" 2+----+------+ 3| id | name | 4+----+------+ 5| 1 | a | 6| 2 | b | 7| 3 | c | 8| 4 | d | 9+----+------+ 10 11mysql -S /data/3308/mysql.sock -e "use taobao;select * from t_area;" 12+----+------+ 13| id | name | 14+----+------+ 15| 1 | a | 16| 2 | b | 17| 3 | c | 18| 4 | d | 19+----+------+
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

sql注入

反引号是个比较特别的字符,下面记录下怎么利用0x00SQL注入反引号可利用在分隔符及注释作用,不过使用范围只于表名、数据库名、字段名、起别名这些场景,下面具体说下1)表名payload:select\from\users\whereuser\_id1limit0,1;!(https://o

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )