通过API提取数据的更好方法?

时间:2019-04-26 17:35:59

标签: java sql json api web-applications

因此,我正在尝试设计一个需要大量数据(10,000行)的Web应用程序。但是,此数量将随着时间呈指数增长。也许成千上万行。我想描述两种方法来获取和呈现数据,并就哪种方法总体上更快提出建议。另外,使用Web应用程序的人员在服务器本地(非常低,如果有任何延迟)

第一种方法:

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

第二种方法:

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

我对此的困扰-第一种方法只需要一个API调用,但是就可以一次计数JavaScript中的所有数据,这意味着即使您不需要某些数据也可以全部装入。

第二种方法需要多个API调用,但是会计算SQL Server上的所有数据,并且仅按需返回所需的数据。会进行很多单独的API调用而不是1个大的API调用吗?

2 个答案:

答案 0 :(得分:2)

我不赞成你使用第二个选项。我不会看到性能问题。随着服务器返回和处理的数量增加,基于类别的计数将很快,并且下一次调用将更小。

答案 1 :(得分:0)

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