gpt4 book ai didi

mysql - 利用大数据更新查询优化

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

我有 products 和categories 表,以及一个名为product_catalog 的数据透视表,我需要更新product_catalog 表,以便可以删除产品少于五个的类别。这些冗余类别中的那些产品应移至其父类别。我已经为此编写了一个查询,但问题是这个product_catalog表中有55213277条记录,并且运行需要很多时间。基本上,它是一个嵌套查询,我们必须多次运行此查询,除非没有类别的产品少于五个。这是我测试过的 sql 查询。

您能给我提出一个优化的解决方案吗?

UPDATE product_catalogT AS C
INNER JOIN
(SELECT
COUNT(*) AS tp, catalog_id cid, g.parent_id pid
FROM
product_catalog AS p
LEFT JOIN catalog AS g ON p.catalog_id = g.id
Where g.parent_id <> 0
GROUP BY catalog_id
HAVING tp < 5)
AS A ON C.catalog_id = A.cid
SET
C.catalog_id = A.pid

最佳答案

这里的内容要少一些,但为了提高性能,我们需要查看您的表、索引和 EXPLAIN,如上所述。

 UPDATE product_catalogT C
JOIN
( SELECT p.catalog_id
FROM product_catalog p
JOIN catalog g
ON p.catalog_id = g.id
Where g.parent_id <> 0
GROUP
BY catalog_id
HAVING COUNT(*) < 5
) A
ON C.catalog_id = A.cid
SET C.catalog_id = A.pid

另外,我可能会提到这似乎是一个相当奇怪的请求

关于mysql - 利用大数据更新查询优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57704813/

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