2010-01-21 24 views
1

在我的Facebook应用程序中,我使用应用程序中的人民朋友姓名。我可以从脸书上得到名字。或者在用户第一次登录时保存它们。所以每次他/她的朋友从数据库中收到。是Facebook更快还是本地数据库?

哪种方法更快?

+1

您是否尝试过两种选择并衡量每个选项的性能? – bcat 2010-01-21 16:23:26

+2

当一个人结婚并更改姓氏时,你将如何同步数据? – naivists 2010-01-21 16:24:16

+0

@naivists提出了一个有效的观点。无论哪种方式更快都无所谓......如果您自己存储这些值,您将失去facebook网络的好处。 – 2010-01-21 16:25:25

回答

8

在数据库中存储好友的名字几乎肯定会更快 - Facebook的API不是特别快,而且由于查询需要通过互联网,所以存在延迟。

但是,故事中的朋友姓名直接从API中首次使用超过24小时检索,因为违反了developers terms of service。因此,您应该期望必须定期查询API,无论是在页面的每个视图上,还是实现您自己的更复杂的数据缓存系统。

+0

+1:这比与它们不同步更重要。很好的发现。 – NotMe 2010-01-21 16:30:26

+0

基本上我要存储每个人自己的名字。当一个人来时,我得到谁是他的朋友谁正在玩这个应用程序。所以它检索他们的名字。我不会将他的朋友信息存储在他的数据库中。 – 2010-01-21 16:34:46

+1

即使存储用户自己的名字也违反了开发者条款。唯一的解决方案是向用户提供一个空白文本字段,并要求他们自己输入一个名称 - 甚至不能预先填充来自API的数据。 – 2010-01-21 16:41:17

1

作为一项规则,本地Db连接通常比web服务调用的访问速度快得多。我建议你设置两个选项并记录一些时间指标来测试,但请记住Facebook的响应也会在不同负载下的一天中的不同时间发生变化。

不要忘了朋友列表也总是在改变,我建议你在每次登录时在后台获取列表来更新你的数据库副本。

1

显然从本地数据库中提取名字会更快。

但这没关系。与Facebook不同步是最重要的问题。

让我们假设他们使用Facebook网站删除一个朋友。他们是否必须点击应用中的“同步”按钮才能删除它们?所以我的建议是不要担心表现,总是从Facebook获得最新消息。

相关问题