【问题标题】:exposing database read operations as webservice将数据库读取操作公开为 Web 服务
【发布时间】:2016-07-31 20:50:12
【问题描述】:

我正在为数据库服务(mongodb、django)编写一个 REST API。我的问题是如何通过 API 处理读取操作?一个简单的解决方案是在每个 api 调用上使用跳过和限制参数查询数据库,这样我就可以查询数据库并返回结果。但是对每个 api 调用(分页)进行查询会不会效率低下?或者我应该在后端第一次调用时查询一次并存储 cursor_id 并用于为后续的 api 调用获取数据?

谢谢。

【问题讨论】:

    标签: mongodb web-services rest


    【解决方案1】:

    使用您的简单解决方案:只需向数据库查询适当的页码。使用提供的skip()limit() 方法,或者如果您非常关心效率,请在this thread there is a work around avoiding skip() function 中使用

    一般来说,我不建议在内存中加载整个数据库集合/表(也不是 mongo,而是任何数据库)。
    这可以处理一个很小的数据集,但是,如果你的集合包含大约 20 万个文档怎么办?你要把它们放在一个变量中吗?你会浪费 CPU 内存复制你的数据库。
    此外,您会发现数据库中加载的数据与内存中的数据之间存在不一致数据。
    最后,您的 API 将搜索页码 2000 多少次?通常你会寻找第一个结果页面。

    【讨论】:

      猜你喜欢
      • 2013-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-22
      • 1970-01-01
      • 1970-01-01
      • 2011-03-15
      • 1970-01-01
      相关资源
      最近更新 更多