目前,我正在开发一个重生成xml的rails应用程序 为宁静的网络服务。我的Web服务使用的xml表示 nokogiri gem生成符合预期格式的xml格式 客户。但问题是数据相当大,约有50,000条记录 从表中拉出(数百万条记录)。我只是在我当地测试 机器,大约需要20分钟才能得到响应 请求。
您对如何优化此问题有任何想法吗?另一个选择,我不确定我们是否 不要使用ActiveRecord,我们只使用纯sql语句来拔出 用于生成xml的数据,然后性能更快或更快 不?
答案 0 :(得分:1)
一种可能的解决方案是研究pagination的想法。分页将返回原始结果的子集。您服务的呼叫者会向您的服务发出多个请求,以检索所有需要的记录。
分页将带来许多好处,这里只是几个
实践中的分页示例
当他们想要返回给定用户的所有关注者时,Twitter API的用户会遇到类似的情况。 Twitter使用游标的概念以分页方式提供结果。使用cursor参数允许返回所有关注者,而不会产生大量请求。
Twitter API链接:
http://apiwiki.twitter.com/w/page/22554748/Twitter-REST-API-Method:-statuses%C2%A0followers
来自API文档:
光标。可选的。将结果分解为页面。单个页面包含100个用户。建议用户跟随许多其他用户。 提供值-1以开始分页。提供在响应主体的next_cursor和previous_cursor属性中返回的值,以便在列表中来回翻页。