Logo
联邦查询

背景信息 #

联邦查询适用于水平分片场景下,对跨数据节点 JOIN绑定表不带分片键 JOIN非绑定表的JOIN单表和分片表 JOIN单表和单表跨数据源 JOIN 等)、子查询无法路由到单节点的子查询)、聚合查询包含 Having聚合查询部分函数包含 DISTINCT表达式中嵌套聚合函数)、集合运算等场景进行支持。

参数解释 #

类名称:org.apache.shardingsphere.sqlfederation.config.SQLFederationRuleConfiguration

可配置属性:

名称数据类型说明默认值
sqlFederationEnabledboolean是否开启联邦查询false
allQueryUseSQLFederationboolean是否全部查询 SQL 使用联邦查询false
executionPlanCacheSQLFederationCacheOption执行计划缓存-
maxUsageMemoryPerQueryString每个查询最大可用内存DBPlusEngine 运行时最大内存
spillEnabledboolean是否启用磁盘交换功能false
spillPathString磁盘交换文件路径/tmp/dbplusengine/spill
spillCompressionEnabledboolean是否启用磁盘交换文件压缩false

执行计划缓存 #

类名称:org.apache.shardingsphere.sqlfederation.config.SQLFederationCacheOption

可配置属性:

名称数据类型说明默认值
initialCapacityint执行计划缓存初始容量2000
maximumSizelong执行计划缓存最大容量65535
ttlMillisecondslong执行计划缓存失效时间(单位:毫秒)86400000(1 天)

配置示例 #

private SQLFederationRuleConfiguration createSQLFederationRuleConfiguration() {
    SQLFederationCacheOption executionPlanCache = new SQLFederationCacheOption(2000, 65535L, 86400000L);
    return new SQLFederationRuleConfiguration(true, false, executionPlanCache, "1M", true, "file:///tmp/dbplusengine/spill", true);
}

相关参考 #