我對「兩個或多個單獨的SQL命令」或「1但使用'join'SQL命令」的性能表示懷疑。使用兩條單獨的SQL語句或一條SQL語句加入JOIN會更快嗎?
這裏是東西:
例如,我有兩個表:post
,user
post
已指示該職位爲user_id是由一些用戶在user
發行和我去提取帖子和用戶名。
我可以
SELECT * FROM `post` LEFT JOIN `user` on post.user_id = user.id WHERE 1
或
$rows = $db->sql("SELEFT * FROM `post` WHERE 1") for $row in $rows: $db->sql("SELECT * FROM `user` WHERE id = $row['user_id']")
我不知道哪一個會有更好的表現?
如果我有3個或更多的表加入,哪種方式會更好(從性能角度來看)?
與INNER JOIN相比,使用LEFT JOIN(或RIGHT JOIN或FULL JOIN)有一個(通常很小但不是零)的性能損失。如果可以的話,避免使用LEFT JOIN並使用JOIN。你會有一個沒有用戶記錄的帖子嗎?如果不是(你不應該),那麼INNER JOIN是合適的。 – 2012-03-03 16:27:36