我怎样才能获得最大的价值?

时间:2017-08-12 18:27:19

标签: mysql sql performance

这是我的表:

-- log
+----+---------+------------+
| id | user_id |    seen    |
+----+---------+------------+
| 1  | 2342    | 1442664886 |
| 2  | 3244    | 1442665851 |
| 3  | 2342    | 1442711823 |
| 4  | 7654    | 1442864219 |
| 5  | 3244    | 1442954080 |
| 6  | 9984    | 1442984716 |
+----+---------+------------+

我想让特定用户看到上次见到的时间最长。我可以通过这两个查询来做到这一点:

第一次查询:

SELECT seen AS last_seen
FROM log
WHERE user_id = :id
ORDER BY seen DESC
LIMIT 1

第二次查询:

SELECT MAX(seen) AS last_seen
FROM log
WHERE user_id = :id

哪一个是标准方式?我应该选择哪一个?表现有什么不同吗?

1 个答案:

答案 0 :(得分:2)

他们都很好。两者都将利用log(user_id, seen)上的索引。

第一种通常更可取,因为您可以拉入整行并从其他列获取信息。