查看 Apache Ignite 2.14.0 文档,不清楚使用 SQL DDL 语句(即 CREATE TABLE ...)创建缓存与使用 CacheConfiguration 以编程方式创建缓存之间是否存在任何实质性差异。
这些最终会导致相同的底层键值存储吗?一个主要区别似乎是使用 CacheJdbcPojoStoreFactory 创建 CacheConfiguration,可以将其设置为绑定到底层 RDBMS 的读/写缓存,这似乎不是 SQL 的情况DDL 方法。
我问的原因是我发现随着查询变得更加复杂,方解石引擎优化器超时。我很好奇缓存的创建方式之间是否存在有意义的差异,以及这是否会改变优化器的行为
查询在 Calcite 优化阶段超时,我想知道缓存的定义方式是否会影响这一点。缓存配置有 QueryEntitys/QueryIndexes 等,其方式似乎反映了使用 SQL DDL 语句所做的任何事情。
简短的回答是它们是一样的。更重要的因素是基于 Calcite 的 SQL 引擎目前处于测试阶段。如果您有复制者,您可以在 Ignite 邮件列表中开票或提出问题。