したがって、約150万行のテーブルがあり、次のようになります。
name | time | data1 | data2
--------------------------------------
93-15 | 1337348782 | 11 | 60.791
92-02 | 1337348783 | 11 | 62.584
92-02 | 1337348056 | 11 | 63.281
93-15 | 1337348068 | 8 | 65.849
92-02 | 1337348117 | 11 | 63.271
93-15 | 1337348129 | 8 | 65.849
92-02 | 1337348176 | 10 | 63.258
93-15 | 1337348188 | 8 | 65.849
92-02 | 1337348238 | 10 | 63.245
93-15 | 1337348248 | 8 | 65.849
...これらは、監視が必要なものからの履歴ステータスの更新に対応します。さて、私がやりたいのは、各ユニットの現在のステータスを見つけることです。
ここスタックオーバーフローで同様の質問を見つけるのは難しくありませんでした。そして、調査結果から外挿して、私はこの質問を思いつきました:
SELECT * FROM vehicles v
JOIN ( SELECT MAX(time) as max, name
FROM vehicles
GROUP BY name)
m_v
ON (v.time = m_v.max AND v.name = m_v.name);
しかし、約150万行(およびカウント)があるので、より高速なクエリを可能にする別のアプローチはありますか?