如何优化慢速MySQL查询(通过PHP)

时间:2015-08-07 15:28:57

标签: php mysql

我试图通过网站前端的一段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的第一行包含一个电子邮件地址,在这种情况下,该地址用作查询的基础。我已经搜索了表格中的各种帖子,但我仍然不确定如何继续前进。

提前致谢,

兰迪

1 个答案:

答案 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将是该家庭的全部,如果我做对了