【问题标题】:Better Way to Pull Data Through API?通过 API 提取数据的更好方法?
【发布时间】:2019-04-26 17:35:58
【问题描述】:

所以我正在尝试设计一个需要大量数据(10,000 行)的网络应用程序。然而,这个数量将随着时间的推移呈指数增长。也许成数十万行。我想描述两种如何提取和呈现数据的方法,并获得关于哪种方法总体上更快的建议。此外,使用 Web 应用程序的人是服务器本地的(如果有延迟的话,非常低)

第一种方法:

  • 对 API 进行一次调用,该 API 在初始应用程序加载时返回所有 10,000 行数据(使用 1 个大型存储过程调用提取所有需要的数据)
  • 使用 JavaScript 循环对这些数据进行计数,并根据特定标准(也称为 JS)将其分类为 20 个类别
  • 当用户单击显示的其中一个计数时,他们将获得一个页面,其中列出了与该特定类别匹配的所有数据行。 (这一步会非常快,因为所有行都已预加载)

第二种方法:

  • 进行初始 API 调用,仅返回基于特定条件的每个类别的计数(在 sql server 而不是 JS 上计数数据) 当用户点击计数时,进行另一个 API 调用以仅返回与该特定类别关联的行和数据(这意味着每个类别都有一个单独的 SP)
  • 这意味着,每次他们点击一个类别时,都会执行一个新的 API 调用,但数据负载会小得多

我对此挂了 - 第一种方法只需要 1 个 API 调用,但会同时计算 JavaScript 中的所有数据,这意味着即使您不需要某些数据,它们也会全部加载。

第二种方法需要多次API调用,但是统计SQL Server上的所有数据,只返回你需要的数据。进行大量单独的 API 调用而不是 1 个大型 API 调用会减慢速度吗?

【问题讨论】:

    标签: java sql json api web-applications


    【解决方案1】:

    恕我直言,您应该选择第二个选项。我不会看到性能问题。基于类别的计数将很快,并且下一个调用将随着服务器返回和处理的数量而变小。

    【讨论】:

    • 正如 Bohus Andrei 所说,您绝对应该选择选项 2。此外,任何索引数据库都会显着加快计数行数。
    【解决方案2】:

    请务必考虑一天内需要检索此数据的次数。如果它是少数——比如最大的 500 倍——选项 1 就可以了。如果调用次数明显高于此,选项 2 会更好。您只需根据需要检索一个子集。

    【讨论】:

    • 请根据How to Answer(可能还有stackoverflow.com/editing-help)将您的两美分升级为答案,因为基本想法似乎是有效的,我很乐观,如果您出席,您可以获得一两个赞成票它适当地。
    猜你喜欢
    • 1970-01-01
    • 2013-08-29
    • 2021-06-15
    • 1970-01-01
    • 2014-04-11
    • 1970-01-01
    • 2014-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多