ShardingSphere的max.connections.size.per.query参数解读

sql改写

shardingsphere会对执行的sql进行改写,比如一下两种场景
在这里插入图片描述

max.connections.size.per.query

max.connections.size.per.query的意义

执行sql的时候,对每一个数据库进行操作的时候的connection数量

场景一,多库场景

当我们不带分片键的sql:select * from ap_alarm_live;那么就会被改写成两个sql,那么他们会分别去两个数据库查询;默认情况下,max.connections.size.per.query=1,那么执行引擎执行的时候,就是每个数据库都会有一个connection去查询。
在这里插入图片描述

场景二,一库多表

如果是一个数据库两个表ap_alarm_live_0和ap_alarm_live_1,那么max.connections.size.per.query=1就会导致查询是串行查询的,查询响应时间就会比较长。同时,第一次查询的全部结果会全部放在了内存里面等待第二次查询的结果然后再一起合并,这种就会导致内存占用比较多。
在这里插入图片描述
从下图可以看出,如果一个库需要执行的sql语句大于max.connections.size.per.query的时候,就会走CONNECTION_STRICTLY模式,也就是连接受限模式,那么就会串行执行sql,然后每次执行完的结果全部放到内存,然后再内存做归并,就不会走流式归并了。流式归并请看归并引擎
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值