当我多次查询一个索引集合,而查询是相同的,只是属性值不同时,执行它的开销有多大?
有没有办法预编译参数化查询来消除这种开销?
编辑:这里有一个简单的基准测试,它表明使用散列索引从CQEngine集合中进行多次检索比从LinkedHashMap中检索项要慢18倍。
https://github.com/Inego/cqe-simple-benchmark/blob/main/src/main/kotlin/Benchmark.kt
发布于 2021-03-03 03:48:00
本身不支持参数化查询。
但是,如果您希望减少频繁构造查询的开销,例如对垃圾收集的影响,您可以利用查询是不可变的和无状态的这一事实,并缓存频繁使用的查询。
查询是树。因此,您还可以缓存频繁使用的查询分支,并在从缓存中检索分支的情况下动态重组查询树。
然而,一般来说,构造查询的开销应该很小。我建议对您的应用程序进行基准测试,看看这是否真的值得。
https://stackoverflow.com/questions/66169377
复制相似问题