私が持っているテーブルには、現在使用されていない温度、場所、日時、およびその他のデータが含まれています。メッセージは温度で、locationmap はセンサーのある場所、つまり、ラウンジ、キッチン、屋外です!)
クエリ:
SELECT
t1.*
FROM
temperatures t1
JOIN (
SELECT
locationmap
, MAX(timeof) AS timeof
FROM
temperatures
GROUP BY
locationmap
) AS t2
ON t1.locationmap = t2.locationmap AND t1.timeof = t2.timeof
WHERE
DATE(t1.timeof) BETWEEN DATE_SUB(CURDATE(), INTERVAL 5 MINUTE) AND CURDATE()";
現在の温度を表示する結果の PHP コード。
// Print out result
while($row = mysql_fetch_array($result)){
echo $row['locationmap']. " - ". $row['message']. " @". $row['timeof'];
echo "<br />";
}
現在は各場所の最新の温度を表示したいだけですが、現時点では結果を表示するのに7秒かかるため、これが速度のために最適化されたクエリであるかどうか疑問に思っていました!? 私は遅いサーバーを持っていますが、私は唯一のユーザーです。
どうも。
ご参考までに。