我试图找到最好的方法来分解一长串点击,进入相关的各种登陆器相关表。优化嵌套语句
SELECT LANDER, COUNT(DISTINCT IP) AS CLICKS
FROM
(
SELECT LANDER, USER_GROUP, IP
FROM
(
SELECT LANDER USER_GROUP, IP, TIME FROM CLICKS_IN WHERE USER_GROUP = " . $_SESSION["KKGR"] . "
)a
WHERE TIME BETWEEN '" . date_format($sdate, 'Y/m/d') . "' AND '" . date_format($edate, 'Y/m/d') . "'
)a
GROUP BY LANDER HAVING COUNT(*)>5 ORDER BY CLICKS DESC";
是我到目前为止得出的唯一点击有效清单。我的两个问题是,如果可能,我宁愿编写一个准备好的查询,但我不知道如何使用嵌套的SQL语句来完成它,其次我不确定是否有更好的方法来执行此操作\有什么问题可能会导致长期运行。它运行得比一个简单的SQL语句更有效,但是我担心我可能会缓冲大部分表到RAM中,如果这种扩展。
优化:使用解释计划,永远是第一个去的地方。如果需要帮助解释它,请将输出(作为文本)添加到您的问题中。最慢的常见问题是缺少索引 –