gpt4 book ai didi

mysql - Groovy withBatch 真的很慢

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

我正在尝试使用 Groovy withBatch 函数,但它真的很慢(15 秒)。我尝试过不同的批量大小(10、400 ...),但每次批量操作总是需要花费大量时间。

这是我用它编写的第二个查询,而且都很慢。

这是我的代码。它有错误还是我使用方式错误?

static updateCSProducts(def conn, def webProductRows){
conn.withBatch(400, """
UPDATE cscart_products p
SET usergroup_ids=:usergroup_ids,
b2b_group_ids=:b2b_group_ids,
b2b_desc_hide=:b2b_desc_hide
WHERE product_code = :product_code
OR product_id = (SELECT product_id FROM cscart_product_options_inventory WHERE product_code = :product_code)
""") { ps ->
webProductRows.each({row ->
ProductType type = ProductType.fromCode(row.type)
String userGroupIds = type.getProductAvailabilityUserGroup().collect{it.getId()}.join(",")
String b2bGroupIds = type.getB2bUserGroup().collect{it.getId()}.join(",")
boolean b2bDescHide = !type.getB2bUserGroup().isEmpty()
println row.id + " " + userGroupIds + " " + b2bGroupIds + " " + b2bDescHide
ps.addBatch(product_code:row.id, usergroup_ids:userGroupIds, b2b_group_ids:b2bGroupIds, b2b_desc_hide:b2bDescHide)
})
}

}

我使用 MySql 作为数据库。当我查看 SQL 连接时,在等待下一批时,我实际上没有看到任何连接正在运行查询。

编辑:我已经删除了查询,但它仍然很慢。这是更新版本:

conn.withBatch(400, """
UPDATE cscart_products p
SET usergroup_ids=:usergroup_ids,
b2b_group_ids=:b2b_group_ids,
b2b_desc_hide=:b2b_desc_hide
WHERE p.product_code = :product_code
""") { ps ->
webProductRows.each({row ->
ProductType type = ProductType.fromCode(row.type)
String userGroupIds = type.getProductAvailabilityUserGroup().collect{it.getId()}.join(",")
String b2bGroupIds = type.getB2bUserGroup().collect{it.getId()}.join(",")
String b2bDescHide = !type.getB2bUserGroup().isEmpty() ? 'Y' : 'N'
println row.id + " " + userGroupIds + " " + b2bGroupIds + " " + b2bDescHide
ps.addBatch(product_code:row.id, usergroup_ids:userGroupIds, b2b_group_ids:b2bGroupIds, b2b_desc_hide:b2bDescHide)
})
}

最佳答案

您在每次更新时都会运行大量查询。您最好检索数据列表,然后对其进行循环。瓶颈不是 withBatch,而是您的实现。

关于mysql - Groovy withBatch 真的很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43815575/

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