gpt4 book ai didi

mysql - Grails:如何减少数据库查询

转载 作者:行者123 更新时间:2023-11-29 13:25:13 24 4
gpt4 key购买 nike

我使用进度条显示任务的完成百分比。为了获得完成百分比,我使用 countBy 方法:

DomainA.countByZ(z) > 0 ? Status.COMPLETE : Status.INCOMPLETE

我有十个这样的查询。

每次当我完成状态时,我都会将计数器加一,最后将其除以十以获得平均值。

获取命中十个数据库查询的百分比

select count(*) as y0_ from domain_a this_ where this_.z_id=?
select count(*) as y0_ from domain_b this_ where this_.z_id=?
...

有什么方法可以减少查询次数吗?(通过使用 hql 查询或任何其他方式来获取平均值或计数)。

我用谷歌搜索了同样的内容,但没有得到相关信息。

最佳答案

如果我没记错的话,您不能使用 HQL 来查询没有关系的实体,因此在这种情况下,解决方案是使用 native sql。您可以在服务中执行此操作:

import groovy.sql.Sql

class MyService {
def dataSource

int myCalc() {
Sql sql = new Sql(dataSource)
String query = """
select count(*) tot1,
(select count(*) from domain_class2) as tot2
from domain_class1
"""
def row = sql.firstRow(query)
//access properties directly
println row.tot1
println row.tot2
}
}

关于mysql - Grails:如何减少数据库查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20237420/

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