这是一个简单的问题——我只是找到了不同的答案,所以我不确定。让我描述一下:
如果你有一个查询,像这样:
SELECT logins.timestamp, users.name
FROM logins
LEFT JOIN users
ON users.id = logins.user_id
LIMIT 10
这基本上将列出表的最后 10 个条目,用JOINlogins
替换。user_id
username
现在我的问题是,LIMIT 是在 JOIN 发生时生效(因此它只加入前 10 个条目)还是在 JOIN 之后生效?(它将加入整个表格,然后删除前 10 个条目)。
我问这个是因为示例表logins
会有很多条目——而且我不确定 JOIN 是否在性能方面过于昂贵。如果 LIMIT 只会发生 10 次 JOIN,那将不是问题。
提出的第二个问题:如果添加了 DISTINCT,功能是否相同?它还会在 10 个条目时停止吗?不,这不会由 ORDER BY 订购。