好的,我有了购物车中的产品列表。我正在尝试检索所有与购物车中的商品相关的商品,而不拉动购物车中的任何商品。
我编写了这个查询,它提取的正是我想要的,但它需要大约 8 秒才能运行。
SELECT * FROM cart_product
WHERE product_id
IN(
SELECT product_related_related_id FROM `cart_product_related`
WHERE product_related_product_id
IN (5401,5402,4983,5004)
)
AND product_id
NOT IN(5401,5402,4983,5004)
Showing rows 0 - 2 (3 total, Query took 7.9240 sec)
有什么方法可以优化它以使其运行得更快?
谢谢!
最佳答案
您应该用 JOIN 替换子查询,这样会加快速度。
像这样:
SELECT DISTINCT cart_product.* FROM cart_product
INNER JOIN cart_product_related ON product_id = product_related_related_id
WHERE product_related_product_id IN (5401,5402,4983,5004)
AND product_id NOT IN(5401,5402,4983,5004)
关于sql - MySql:为什么这个查询运行这么慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1750028/