gpt4 book ai didi

MySQL 性能 : one query using left join vs. 多个查询

转载 作者:行者123 更新时间:2023-11-29 03:32:32 25 4
gpt4 key购买 nike

我想实现你在 Facebook 上看到的东西:

- Posting status
- Comment status
- Like status (like for comments not implemented yet)

我的表结构是这样的:

Posts        Users       Comments    Likes
------- ------- -------- -------
ID ID ID ID
UserID Username PostID PostID
Content UserID UserID
Date Content
Date

所以此时当有人访问主页时,系统将显示最后 10 个帖子。我的查询在这些表上使用 LEFT JOIN

例如,如果有 10 个帖子没有任何评论和任何点赞,查询将返回 10 条记录。

但对于每条评论或点赞,我的查询将返回一条新记录(行),并在相应列中包含一些 NULL 值。

最后,如果只想检索 10 个帖子,我的查询将返回至少 50 行(如果每个帖子都有一些评论和点赞)。

我想知道这是否会在将来造成问题。我想知道我是否应该更好地使用多个查询并将所有结果解析为一个数组,如:

1. Select the 10 last posts
2. Save the IDs into array and all data into global array
3. Parse the array and make a prepared query for the comments something like:
SELECT * FROM COMMENTS WHERE PostID IN (1, 2, 3, 4, 5, 6,...)
4. Save the result into global array
5. Repeat again for the like table

我希望我的解释足够清楚 :) 谢谢

最佳答案

执行一次 50 行查询减少了与服务器通信时的开销,另一方面它增加了检索行后的处理。

这真的取决于整体解决方案。但是,除非应用程序对性能至关重要且服务器成为瓶颈,否则我会使用 10 个结果集 - 每行一个,可能使用一些类/小部件/对象在页面上显示帖子。

关于MySQL 性能 : one query using left join vs. 多个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28482610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com