次のようなログテーブルがあります。
logs (_id_, client, metric, value);
ログテーブルから情報を取得するために、PHP フロントエンドから MySQL に次のクエリを書き込もうとしています。
SELECT client, LAST(value) AS value
FROM logs
WHERE metric = 'free space'
GROUP BY client;
もちろん、それLAST
は有効な集計関数ではありません。
私の提案する解決策はこれです:
SELECT client, value
FROM logs
WHERE id IN (
SELECT MAX(id)
FROM logs
WHERE metric = 'free space'
GROUP BY client);
ただし、4,000 行の非常に小さなテーブルの場合、このクエリを開発マシンで実行するには 60 秒以上かかります。
提案?