我对“两个或多个单独的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