gpt4 book ai didi

java - 在 Jooq 中缓存查询

转载 作者:搜寻专家 更新时间:2023-10-30 19:53:27 26 4
gpt4 key购买 nike

我尝试在项目中使用 jooq,但出于性能原因我想缓存查询。在用户手册中 performance consideration section ,提到了查询缓存,但没有关于如何实现它的示例。所以我尝试按如下方式缓存查询(例如 SimpleSelectConditionStep):

SimpleSelectConditionStep query = getFromPool();
if(query != null) {
factory.attach(query);
query.bind(1,"John");
} else {
// create query
factory.select(PERSON).where(PERSON.NAME.equal("Michael"));
}
// fetch and use query
result = query.fetchOne();
.....
putToPool(query);

我的软件是一个多线程网络应用程序,但它保证两个不同的线程不能同时使用相同的查询(池在再次放入池之前不会返回相同的查询)。

我知道工厂不是线程安全对象,但我想知道在代码中使用这样的查询会导致问题吗?

最佳答案

如果准备语句需要很长时间,您可以使用 jOOQ 的语句重用功能:

http://www.jooq.org/doc/latest/manual/sql-execution/reusing-statements

如果经常执行相同的查询,这将在内部保留查询中的 open 语句。除此之外,我怀疑对于您示例中的简单查询,您是否需要为 jOOQ 对象提供缓存。

关于java - 在 Jooq 中缓存查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17273635/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com