我有两个表:MySQL的左连接对2个单独的查询(性能)
++++++++++++++++++++++++++++++++++++
| Games |
++++++++++++++++++++++++++++++++++++
| ID | Name | Description |
++++++++++++++++++++++++++++++++++++
| 1 | Game 1 | A game description |
| 2 | Game 2 | And another |
| 3 | Game 3 | And another |
| .. | ... | ... |
++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++
| GameReviews |
+++++++++++++++++++++++++++++++++++++++
| ID |GameID| Review |
+++++++++++++++++++++++++++++++++++++++
| 1 | 1 |Review for game 1 |
| 2 | 1 |Another review for game 1|
| 3 | 1 |And another |
| .. | ... | ... |
+++++++++++++++++++++++++++++++++++++++
选项1:
SELECT
Games.ID,
Games.Name,
Games.Description,
GameReviews.ID,
GameReviews.Review
FROM
GameReviews
LEFT JOIN
Games
ON
Games.ID = GameReviews.GameID
WHERE
Games.ID=?
选项2:
SELECT
ID,
Name,
Description
FROM
Games
WHERE
ID=?
然后 SELECT ID, 评论 FROM GameReviews WHERE GameID =?
很显然,查询1会更“简单”,因为它只需要编写更少的代码,另一个在数据库上似乎在逻辑上更“容易”,因为它只查询Games
表一次。问题的关键在于什么时候真的在性能和效率方面存在差异?
我希望我有时可以接受这两个答案... – SnareChops 2013-03-10 02:52:53