server配置
json配置格式
{"datasourceProvider":"io.mycat.datasource.jdbc.datasourceprovider.DruidDatasourceProvider","loadBalance":{"defaultLoadBalance":"BalanceRandom","loadBalances":[]},"mode":"local","serverVersion" : "5.7.33-mycat-2.0" //1.17提供,用于客户端适配,调整到与原型库的mysql版本一致"properties":{},"server":{"bufferPool":{},"idleTimer":{"initialDelay":3,"period":15,"timeUnit":"SECONDS"},"ip":"127.0.0.1",//0:0:0:0:0:0:0:1"mycatId":1,"port":8066,"reactorNumber":8,"tempDirectory":null,"timeWorkerPool":{"corePoolSize":0,"keepAliveTime":1,"maxPendingLimit":65535,"maxPoolSize":2,"taskTimeout":1,"timeUnit":"MINUTES"},"workerPool":{"corePoolSize":8,"keepAliveTime":1,"maxPendingLimit":65535,"maxPoolSize":1024,"taskTimeout":1,"timeUnit":"MINUTES"},"fullTableScanLimit":1024,"mergeUnionSize": 5,"ignoreCast": false ,//生成的sql是否忽略类型转换,1.17支持,"joinClustering": true ,//开启后进行join重排序,关闭后会加快优化速度,1.18支持"sortMergeJoin":true,"pushDownSelectDual":"hackRouter","useProxyProtocol":false,"bkaJoin": true,//开启禁用BKAJOIN,部分全局二级索引回表依赖此参数优化//开启后对于无法下推join的情况,会添加order by后添加sortMergeJoin算子合拼结果 2021-10-26}}
默认配置
如果不配置则使用上述的值进行加载
mycatId
Mycat的标志符,用于区分多个部署的mycat
ip
ip4:
127.0.0.1
0.0.0.0
ip6:
0:0:0:0:0:0:0:1
同IPV4中127.0.0.1地址的含义一样,表示节点自已
0:0:0:0:0:0:0:0
未指定地址
mergeUnionSize为使用一次union all合拼同一个存储节点上多个dataNode的sql数量
该参数在1.15版本以后才存在
mycatId是保证多个mycat公用存储节点的时候必须配置这个值,并且唯一,他用于生成序列号,Xid等.
serverVersion用于客户端与服务端适配
比如SELECT @@session.transaction_isolation
fullTableScanLimit
“fullTableScanLimit”:1024,//判断全表扫描的分区数量限制,超过这个限制会有类似的提示在日志中,默认值是1024
2022-2-24后1.21提供
2022-3-11后此参数用于现在每个MycatView使用的连接数量,比如MycatView获得2048个连接,在默认参数1024下只能获取1024个连接
warning sql:{},partition count:{},limit:{},it may be a full table scan.
处理无表SQL(2022-2-24)
"pushDownSelectDual":"hackRouter",//路由,发送到mysql上面执行,默认值是hackRouter或者"pushDownSelectDual":"mycat",//mycat内置的查询引擎
在处理类似SELECT CAST(‘test collated returns’ AS CHAR CHARACTER SET utf8mb4) COLLATE utf8mb4_bin AS anon_1的时候,直接发送到mysql上面处理
hackRouter
规则1,如果select中没有函数和session变量,比如select 1,使用mycat查询引擎执行
规则2,如果select中存在信息函数,锁函数或session变量,则都使用mycat查询引擎执行
规则3,如果select中有函数,没有信息函数,锁函数,没有session变量,则根据pushDownSelectDual进行判断,如果是hackRouter则发送到原型库上执行,否则,使用mycat查询引擎执行
mycat
都使用mycat查询引擎执行
useProxyProtocol:true|false
2022-3-3以后支持
支持HAProxy ProxyProtocol协议
fullTableScanException:true|false
2022-3-3以后支持
检查到全表扫描就抛异常
rewriteInsertBatchedStatementBatch
默认值:1000
每1000个插入行,合拼成一个插入SQL
stickySession
默认值:true
可选值:true,false
是否开启会话粘滞
stickySessionTime
默认值:-1
可选值:整数范围,单位毫秒
当-1的时候,每次指定主数据源的时候,下一次选择数据源一定会选择主数据源
当大于等于0的是,每次指定主数据源的时候,下一次选择数据源,在时间内,会选择主数据源,时间外负载均衡
sendBufferSize(2022-6-13)
默认值:-1
Mycat会话网络接收缓冲区大小
receiveBufferSize(2022-6-13)
默认值:-1
Mycat会话网络写入缓冲区大小
