我试图通过网站前端的一段PHP代码运行以下mySQL查询。出于某种原因,当我在我的AWS实例上运行它时,性能非常糟糕。但是,当我运行localhost(wamp)时,我完全没有问题。它甚至会返回更大数据集的结果。对于mySQL,我有点新手。想法?
SELECT *
FROM bigfoot
WHERE family_id IN
(
SELECT family_id AS family_id
FROM bigfoot
WHERE user_email = '$email'
GROUP BY family_id
)
如您所见,收集此查询的特定行数据的主要元素是family_id。但是,只有每个family_id的第一行包含一个电子邮件地址,在这种情况下,该地址用作查询的基础。我已经搜索了表格中的各种帖子,但我仍然不确定如何继续前进。
提前致谢,
兰迪
答案 0 :(得分:1)
我会走出困境,为什么不呢。
我认为这会非常快:
select b1.*
from bigfoot b1
join bigfoot b2
on b2.family_id=b1.family_id
and b2.user_email='$email'
假设你在bigfoot(family_id,email)上有一个复合索引......这是一个很大的假设。加上电子邮件索引
但它确实显示了如何丢失相关子查询。
b2将被隔离到电子邮件,让家人。 b1将是该家庭的全部,如果我做对了