schema.xml属性概念
# schema 定义逻辑库
checkSQLschema 当该值设置为 true 时,如果我们执行语句**select * from TESTDB.travelrecord;**则 MyCat 会把语句修改为**select * from travelrecord;**。即把表示 schema 的字符去掉
sqlMaxLimit 每条执行的 SQL 语句,如果没有加上 limit 语句,MyCat 也会自动的加上所对应的值。如果schema为非拆分表时,这个参数不会起作用
# table 定义逻辑表
name 逻辑表名称。schema为命名空间,命名空间范围内唯一
dataNode 定义逻辑表所属的数据节点。与dataNode标签name值对应
rule 指定table的所使用的分片规则
ruleRequired 指定该table是否绑定分片规则,如果该值为true,但是没有配置具体的rule,那么将报错
primaryKey 该table所对应的真实表的主键。设置了该值,Mycat会缓存该主键与逻辑表分片的对应关系信息。查询时,用主键的值作为条件,那么查询语句会直接发送到该主键值所对应的分片节点上
type 如果设置为global,则为全局表;不指定type值,则为普通表。全局表是把一些不常更新且数据量不大的表分别在各个分片节点上冗余一份的方式,这样方便与其他表join时不用跨库。全局表中需要注意的是全局数据一致性问题。
needAddLimit 设置该表是否自动添加limit,如果查询语句中存在limit,那么这里设置的limit不会起作用
subTables 分表配置,例如:subTables="t_order$1-2,t_order3"。分表只能指定一个分片节点,分表条件下不支持各种条件的Join,分表原理:
mycat 分表原理,是在原有分片的基础上把原来分片的路由改写为改写sql: 例如对于取模,分为3个片的配置: 分库模式下是:insert into table(xxx)values(1,name); router:{ node1:insert into table(xxx)values(1,name) ,datanode1, node2:insert into table(xxx)values(2,name) ,datanode2, node3:insert into table(xxx)values(3,name) ,datanode3, }, 分表模式是: insert into table(xxx)values(1,name); router:{ node1:insert into table1(xxx)values(1,name) ,datanode1, node2:insert into table2(xxx)values(2,name) ,datanode1, node3:insert into table3(xxx)values(3,name) ,datanode1, },
# childTable 配置ER分片方式下的子表,通过标签的属性与父表进行关联
name 定义子表的表名
joinKey 外键在该子表中的字段名
parentKey 外键在父表中的字段名
primaryKey 同table标签
needAddLimit 同table标签
MyCAT借鉴了NewSQL领域的新秀Foundation DB的设计思路。
Foundation DB创新性的提出了Table Group的概念,其将子表的存储位置依赖于主表,并且物理上紧邻存放,因此彻底解决了JION的效率和性能问题。
根据这一思路,提出了基于E-R关系的数据分片策略,子表的记录与所关联的父表记录存放在同一个数据分片上。
ER表联表查询详解:https://www.cnblogs.com/toulon/p/4832895.html
# dataNode 数据分片节点。一个分片节点对应着一个库实体。
name 分片节点的名称
dataHost 定义该分片属于哪个数据库实例,该属性值引用dataHost标签的name属性值
database 定义该分片属于哪个数据库实例上的具体库。方便水平切分(还没明白是咋方便)
#dataHost 定义了具体的数据库实例、读写分离配置和心跳语句
name 唯一标识 dataHost 标签,供上层的标签使用
maxCon 指定每个读写实例连接池的最大连接。也就是说,标签内嵌套的 writeHost、readHost 标签都会使用这个属性的值来实例化出连接池的最大连接数。
minCon 指定每个读写实例连接池的最小连接,初始化连接池的大小。
balance 负载均衡类型。M1->S1,M2->S2 ; M为writeHost S为readHost
balance=0时,写操作在M1上时,读操作都在M1上(M失败时,后端直接失败)
balance=1时,写操作在M1上时,读操作会随机分散在M2和S1,S2上面(M1 <=>M2互为主备 ;M1写失败时,写操作会在M2,如果M2再失败,则无法进行写操作)
balance=2时,写操作在M1上时,读操作会随机分散在M2,S1,S2上(同上)
balance=3时,写操作在M1上时,读操作在S1上;写操作在M2上,读操作在S2上。
writeType 负载均衡写方式
writeType=0时,写操作会在M1上,如果M1失败,会自动切换到M2,M1恢复以后并不会切换回M1进行写操作
writeType=1时,写操作会随机分布在M1和M2上,单点失败并不会影响集群的写操作,但是后端的从库会无法从挂掉的主库获取更新,会在读数据的时候出现数据不一致
举例:M1失败了,写操作会在M2上面进行,M2的主从正常运行,但是S1无法从M1获取更新,S1于其他库出现数据不一致
switchType 负载均衡切换方式
-1 不自动切换
1 默认值。自动切换
2 基于 MySQL 主从同步的状态决定是否切换 心跳语句为 show slave status
3 基于 MySQL galary cluster 的切换机制(适合集群)(1.4.1) 心跳语句为 show status like ‘wsrep%’.
tempReadHostAvailable 不明白这个属性的用法
# heartBeat 定义MYCAT和后端数据库之间心跳检查的设置
mysql 使用的心跳检查语句一般是 select user()
主从切换的心跳检查语句必须是:show slave status
# writeHost # readHost这两个标签都指定后端数据库的相关配置给 mycat,用于实例化后端连接池。
host 用于标识不同实例,一般 writeHost 我们使用*M1,readHost 我们用*S1。
url 后端实例连接地址
user 后端存储实例需要的用户名字
password 后端存储实例需要的密码
weight 权重 配置在 readhost 中作为读节点的权重
usingDecrypt 是否对密码加密默认 0 否 如需要开启配置 1,同时使用加密程序对密码加密,加密命令为:
执行 mycat jar 程序(1.4.1 以后):
java -cp Mycat-server-1.4.1-dev.jar org.opencloudb.util.DecryptUtil 1:host:user:password
Mycat-server-1.4.1-dev.jar 为 mycat download 下载目录的 jar
1:host:user:password 中 1 为 db 端加密标志,host 为 dataHost 的 host 名称
schema.xml属性概念的更多相关文章
- server.xml属性概念
# system Processers为系统可用的线程数,一般和CPU核心线程数相同 BufferPool 是由BufferChunk组成. BufferPool的总大小为BufferChunkSiz ...
- rule.xml属性概念
# tableRule <tableRule name="rule1"> <rule> <columns>id</columns> ...
- solr的schema.xml配置属性解释
schema.xml做什么? SOLR加载数据,创建索引和数据时,核心数据结构的配置文件是schema.xml,该配置文件主要用于配置数据源,字段类型定义,搜索类型定义等.schema.xml的配置直 ...
- Solr5之Schema.xml详解
schema.xml 是用来定义索引数据中的域的,包括域名称,域类型,域是否索引,是否分词,是否存储,是否标准化即 Norms ,是否存储项向量等等. schema.xml 配置文件的根元素就是 sc ...
- Solr Schema.xml和solrconfig.xml分析(转)
Solr Schema.xml和solrconfig.xml分析 (http://yinwufeng.iteye.com/blog/964040) 一.字段配置(schema) schema.xml位 ...
- Solr 03 - Solr的模式设计与优化 - 最详细的schema.xml模式文件解读
目录 1 关于schema.xml文件 2 解读schema.xml文件 2.1 field - 配置域 2.2 fieldType - 配置域类型 2.3 copyField - 配置复制域 2.4 ...
- solr schema.xml文档节点配置
首先,讲解一下/usr/local/solr/collection1/conf/schema.xml的配置,此文档功能类似于配置索引数据库. Field:类似于数据库字段的属性(此文统一使用用“字段” ...
- 我与solr(五)--关于schema.xml中的相关配置的详解
先把文件的代码贴上来: <?xml version="1.0" encoding="UTF-8" ?> <!-- 版权说明... --> ...
- solrconfig.xml和schema.xml说明
1. solrconfig.xml solrconfig.xml配置文件主要定义了SOLR的一些处理规则,包括索引数据的存放位置,更新,删除,查询的一些规则配置. 1.1. datadir节点 ...
随机推荐
- HDU3577 线段树(区间更新)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3577 ,普通的线段树区间更新题目,较简单. 相当于一个区间覆盖问题,有一点要注意的就是叶子节点是一个长 ...
- 2018.6.18 MyEclipse导入jquery-1.8.0.min.js等文件报错的解决方案
MyEclipse导入jQuery-1.8.0.min.js等文件的时候有时候会报了一堆missing semicolon的错误.怎么解决这个报错呢?方法如下: 1.选中报错的jquery文件例如&q ...
- 黑马基础阶段测试题:创建Phone(手机)类,Phone类中包含以下内容:
package com.swift; public class Phone { private String pinpai; private int dianliang; public String ...
- vue 服务代理 调用第三方api
项目中前期需要调用第三方API来获取汇率.因为直接调用会有跨域的问题,所以使用来服务代理. 在config配置代理可以这样写: 而调用接口就可以这样写: 坑:配置完成后一直报500,开始怀疑人生.最后 ...
- let和const在es6中的异同点
let和const这两个都是声明一个变量或函数的方法与var差不太多的效果 let的声明在for循环中,当你定义的是多少,最后你的值就是多少开始的,它只进行一次循环,不会像var那样去一遍一遍的去遍历 ...
- 【luogu题解】P1546 最短网络 Agri-Net
题目 约翰已经给他的农场安排了一条高速的网络线路,他想把这条线路共享给其他农场.为了用最小的消费,他想铺设最短的光纤去连接所有的农场. 你将得到一份各农场之间连接费用的列表,你必须找出能连接所有农场并 ...
- 记录一些 FileZillaClient 的基本连接操作
本地主机:Window 10 FileZilla版本:3.39.0 64位 远程主机:CentOS 6.4 需安装FTP服务 小提示:查看CentOS版本命令 # cat /etc/issue Fil ...
- MySql学习笔记01
MySql01 课程介绍 数据库简介 之前通过流操作文件的方式存储数据弊端: 1. 效率低 2. 不管是存还是取都比较麻烦 3. 一般只能存储小量数据 4. 只能存储文本数据 什么是DB DataBa ...
- php订单号的生成
来自ECSHOP订单号生成函数:/includes/lib_order.php文件中的get_order_sn() /** * 得到新订单号 * @return string */ function ...
- Ueditor百度编辑器插件的安装
目录 插件下载地址: 1. 引入 2. 编辑器显示处 id="content" 3.底部 4.ueditor编辑器按钮配置方法 定制工具栏图标 修改配置项的方法: 插件下载地址: ...