该功能为实验性功能,暂不适合核心系统生产环境使用。 当关联查询中的多个表分布在不同的数据库实例上时,通过开启联邦查询可以进行跨库关联查询,以及子查询。
类名称:org.apache.shardingsphere.sqlfederation.config.SQLFederationRuleConfiguration
可配置属性:
| 名称 | 数据类型 | 说明 | 默认值 |
|---|---|---|---|
| allQueryUseSQLFederation | boolean | 是否全部查询 SQL 使用联邦查询 | - |
| executionPlanCache | org.apache.shardingsphere.sqlfederation.config.SQLFederationCacheOption | 执行计划缓存 | - |
| providerType | String | 联邦查询 provider 类型;NONE 表示关闭联邦查询 | NONE |
类名称:org.apache.shardingsphere.sqlfederation.config.SQLFederationCacheOption
可配置属性:
| 名称 | 数据类型 | 说明 | 默认值 |
|---|---|---|---|
| initialCapacity | int | 执行计划缓存初始容量 | 执行计划本地缓存初始默认值 2000 |
| maximumSize | long | 执行计划缓存最大容量 | 执行计划本地缓存最大默认值 65535 |
private SQLFederationRuleConfiguration createSQLFederationRuleConfiguration() {
SQLFederationCacheOption executionPlanCache = new SQLFederationCacheOption(2000, 65535L);
return new SQLFederationRuleConfiguration(false, executionPlanCache, "CALCITE");
}
