假設這個表:posts_groups
MySQL的加入和性能
+---------+----------+--------+
| post_id | group_id | type |
+---------+----------+--------+
| 1 | 1 | public | // group #1 sees post #1 where type is public
+---------+----------+--------+
而且表:posts
+----+--------+
| id | type |
+----+--------+
| 1 | public | // example : post #1 is public
+----+--------+
查詢1
SELECT post_id FROM posts_groups pg
JOIN posts p ON p.id = pg.post_id
WHERE group_id = 1 AND pg.type = public
那麼,這個檢查組1和type
FROM CURRENT表,然後選擇一些post_id。
QUERY2
SELECT post_id FROM posts_groups pg
JOIN posts p ON p.id = pg.post_id
WHERE group_id = 1 AND p.type = public
這個查詢也做同樣的。但檢查type
FROM POSTS表。
但哪種方法速度更快,性能更好。任何想法這兩個查詢如何工作。
條件過程!
查詢1,它說,如果(GROUP_ID = 1 AND紙張類型=公用)THEN如果(post.id = posts_groups.id)JOIN查詢2個職位
,它說,如果( group_id = 1)THEN if(post.id = posts_groups.id)THEN if(posts.type = public)JOIN帖子。
query2的過程稍長一點。或者我的邏輯錯了!
在此先感謝。
使用'EXPLAIN',看看有什麼優化想做的事... –