0

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

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

谢谢

4

0 回答 0