【发布时间】:2014-02-01 20:04:12
【问题描述】:
假设我有两个表,post 和 user。现在让我们创建两种方法:
- 在 post.userID 和 user.ID 上使用连接
- 选择一个帖子;在处理它时,查找它的userID;如果已经选择了用户(在脚本中,不是缓存,而是缓存在“内存中”),则使用这些数据来实现完整的帖子。如果用户未被选中;执行查询以从数据库中的用户中选择用户。检索并存储数据以供进一步使用(始终在内存中)。
这两种方法都可以,但第一种方法会发出一个“大”请求,而第二种方法会发出许多“小”请求。在我看来,第二个在大环境中会更好,而在小环境中会不方便(反之亦然)。
现在让我们定义三个场景:
- 少数用户发表的几篇文章
- 少数用户发布的许多帖子
- 许多用户的许多帖子
我想确切地了解这两种方法何时方便或不方便。 到目前为止,这是我的想法。
- 在第一种情况下,两种方法几乎相同
- 在第二种情况下,第二种方法应该更好,因为选择少数用户会导致很少的查询。
- 在第三种情况下,我认为第二种方法更适合,但我无法下定决心。
我说的对吗?我不应该采用第二种方法有什么特别的原因吗?我所说的是否有任何优点/缺点?
谢谢。
【问题讨论】:
标签: php sql optimization