所以,我有一个大约有 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  
...这些对应于需要监控的事物的历史状态更新。现在,我想做的是找到每个单元的当前状态。
在 stackoverflow 上找到类似的问题并不难,并且从结果中推断出来,我想出了这个查询:
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 万行(并且还在增加),是否有不同的方法可以实现更快的查询?