CQEngine 查询开销/预编译参数化查询

CQEngine query overhead / precompiled parameterized queries

当我多次查询一个索引集合时,查询都是相同的,只是属性值不同,执行它的开销有多大?

有没有办法预编译参数化查询来消除这种开销?

编辑:这是一个简单的基准测试,表明从具有哈希索引的 CQEngine 集合中进行多次检索往往比从 LinkedHashMap 中检索项目慢 18 倍。

https://github.com/Inego/cqe-simple-benchmark/blob/main/src/main/kotlin/Benchmark.kt

本身不支持参数化查询。

但是,如果您想减少频繁构造查询的开销,例如对垃圾收集的影响,您可以利用查询不可变和无状态的事实,并缓存经常使用的查询。

查询是树。因此,您还可以缓存经常使用的查询分支,并在从缓存中检索分支的地方动态重组查询树。

不过话虽如此,构建查询的开销通常应该很小。我建议对您的应用程序进行基准测试,看看这是否真的值得。