我想优化这个查询,因为它运行的数据库是巨大的,主机说这个查询导致服务器上的严重负载。我已经阅读了关于如何替换ORDER BY RAND()的其他一些答案,但我并不知道SQL来适应这些特定查询的答案。谁能帮忙? TIA我如何优化这个SQL查询与ORDER BY兰德()
SELECT COUNT(p.prod_id) AS no_prod, s.*
FROM product p, seller s
WHERE s.admin_status = '1'
AND s.pay_status = '1'
AND s.sub_type != ''
AND p.seller_id = s.seller_id
GROUP BY s.seller_id
HAVING COUNT(p.prod_id)>5
ORDER BY RAND()
LIMIT 0, 4
什么其他问题/答案你读过?请链接? – PenguinCoder 2012-02-23 21:50:12
我不明白这个查询会如何工作 - 是不是抱怨SELECT中的字段是从GROUP BY中丢失的? – egrunin 2012-02-23 22:12:32
@大部分涉及1个随机行(LIMIT 1),比检索4行更容易。第三个涉及多行,但没有得到确切的答案。 – joshuahedlund 2012-02-23 22:17:52