我目前正在使用node.js为我当前的一个iPhone应用程序构建RESTful Web服务。目前,系统的工作原理如下:
我一直在考虑的一件事是对我的服务器进行多次API调用的差异(在性能和最佳实践方面)与在MySQL数据库中执行多个连接语句的一次调用然后返回构造对象。
例如: 假设我正在加载要在UI中显示的用户配置文件。用户具有个人资料图片,基本信息和新闻源项目。使用选项一,我会按如下方式进行:
Select * from user join user_info on user.user_id=user_info.user_id left join user_profile_picture on user_profile_picture.user_id=user.user_id
。选项2将是:
因此,考虑到这两个选项,我想知道哪个选项可以提供更好的可扩展性。
目前,由于以下原因,我打算选择2:
任何想法或经历?
答案 0 :(得分:1)
我认为这里的关键问题是这些API调用是否总是在一起。如果是,则设置单个端点并执行连接更有意义。但是,如果情况并非如此,那么您应该保持单独的。
现在,您可以做的当然是使用查询语法,让您指定特定端点是否应该为您提供更多数据并将其与连接组合。这个确实需要更多的输入卫生,但它可能是值得的,因为您可以最小化请求并仍然获得适应性系统。
在服务器端,除非您一次处理数千行,否则您的两种方法中的任何一种都不可能明显慢于另一种方法