在这种情况下何时执行JOIN?

时间:2013-05-18 18:02:08

标签: mysql join

假设我从表格“帖子”中选择数据:

id   |  bigint(20)   |  PK
text |  varchar(400)

和表“喜欢”:

user_id  |  bigint(20)
post_id  |  bigint(20)

这两个字段作为主键加入

假设我在桌面上的选项“发布”有500'000条记录,只是

SELECT id, text FROM posts LIMIT 0,20

我需要知道哪些帖子有类似内容(每个用户/帖子只能有一个帖子,请参阅主键定义)。所以我可以做到

SELECT id, text FROM posts LEFT JOIN likes ON posts.id = likes.post_id LIMIT 0,20

查询是否会加入20条记录或所有500'000个表“帖子”?在我的有效查询中,任何WHERE / GROUP子句中都没有使用“likes”列。

的输出
EXPLAIN 
SELECT id
FROM posts
LEFT JOIN likes ON posts.id = likes.post_id
LIMIT 0 , 20

id  select_type table   type    possible_keys   key key_len ref rows    Extra
1   SIMPLE  posts   index   NULL    PRIMARY 16  NULL    58  Using index
1   SIMPLE  likes   ref PRIMARY PRIMARY 8   legendaily.posts.id 1   Using index

由于

0 个答案:

没有答案