gpt4 book ai didi

php - 带子查询的慢 MySQL 查询

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

我在 PHP 中遇到此查询的问题。它太慢了,执行后几分钟我无法连接到服务器。我一直在从主查询中删除单独的子查询,并发现在删除最后一个内部查询后,它工作得非常顺利。

表“u”有 30.000 行,表“u_r”大约有 17.000 行,表“u_s”大约有 13.000 行,表“s”大约有 100 行。尽管表“u_r”和“u_s”有很多行,但只有 2- 3 行具有与条件匹配的相同“id_u”。

我希望我提供了足够的信息。如果您还需要了解其他信息,请随时在评论中询问。

SELECT DISTINCT id_p
FROM u
WHERE
'$x' IN(
SELECT id_p
FROM u_p
WHERE id_u=u.id_u
)
AND
(
'$y' IN (
SELECT id_r
FROM u_r
WHERE id_u=u.id_u
)
OR
'$y' IN (
SELECT DISTINCT id_r
FROM s
WHERE id_s IN (
SELECT id_s //without this query, everything works fine
FROM u_s
WHERE id_u=u.id_u
)
)
)

最佳答案

我认为你可以改变:

SELECT DISTINCT id_r 
FROM s
WHERE id_s IN (
SELECT id_s //without this query, everything works fine
FROM u_s
WHERE id_u=u.id_u

SELECT s.id_s
FROM u_s
INNER JOIN s ON u_s=id_u=u.id_u
WHERE u_s.id_u = u.id_u
GROUP BY s.id_r

未进行测试,因为我正在尝试了解该结构。

还记得检查索引。作为一个粗略的指南,您应该将“WHERE”中的所有内容和“ON”中的所有内容编入索引:

u_p.id_u
u_r.id_u
u_s.id_u
s.id_s

关于php - 带子查询的慢 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12255439/

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