假设我从表“帖子”中选择数据:
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
谢谢