gpt4 book ai didi

php - 在大循环中使用时如何优化 COUNT()

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

我遇到的情况是,我显示类别以及这些类别以及所有内部子类别和子类别中的产品数量(仅限 3 级)

这是我的 SQL 语句

SELECT COUNT(id) as count_brand_prod FROM `shop_products` 
WHERE (`shop_products`.`category_id` IN (28,59,29,60,30,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,27)
OR `shop_products`.`parent_category_id` = '27')
AND `brand_id` = '88'
AND `pharmacy_id` = '10';

我在父类别和子类别上循环它,还对每个类别使用上述查询来计算类别以及该类别的任何级别中存在的产品数量。由于某种原因,我使用 IN 运算符,其中包含类别/子类别和子子级别的所有 ID。

循环时它会减慢页面访问速度。谁能帮助我如何优化查询以更快地加载我的页面?

最佳答案

确保所有 ID 列都已建立索引,即。有 key 。
如果不添加缺失的索引,例如使用此更改表查询:

ALTER TABLE `shop_products`
ADD INDEX `id` (`id`),
ADD INDEX `category_id` (`category_id`),
ADD INDEX `parent_category_id` (`parent_category_id`),
ADD INDEX `brand_id` (`brand_id`),
ADD INDEX `pharmacy_id` (`pharmacy_id`)
;

注意:首先删除已存在索引的行!

关于php - 在大循环中使用时如何优化 COUNT(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49187437/

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