使用服务器端或客户端的分页/过滤/搜索会更快吗?

时间:2019-05-29 22:02:45

标签: mysql ruby-on-rails angular

我正在使用的当前系统可以处理各种数据集大小,大多数大约为100,但是少数客户的结果为250,000或更多。我们需要对这些结果字段进行搜索,对多达50个页面大小进行分页,并在特定字段上过滤所有结果。

当前,服务器已设置为执行所有这些功能。需要考虑的事情是,搜索将触发后端调用,列过滤器将触发后端调用,等等。因此,很多(很可能是)对后端的调用更快。

客户端可以在缓存的大型数据集上执行这些操作,但是当数据集到达频谱的高端时,过滤/排序可能会更慢。

我们的主要考虑因素是速度和用户体验。后端方法可能会更快,更频繁地进行呼叫,但是会导致很多短的加载时间和用户的微调。前端可能需要很长的初始加载时间,并且需要进行诸如筛选/排序之类的附加操作才能更快地加载/更改数据。

对于那些遇到类似问题的人,您有何建议?你有什么问题您能为这类问题提供一些好的资源吗?任何协助都是有帮助的。

很抱歉,如果这不适合SO上的标准代码问题,请寻找对此问题的经验丰富的帮助。

1 个答案:

答案 0 :(得分:1)

如果日期较长,则必须使用服务器端排序,搜索和分页

为了提高性能,如果您在给定时间段内多次调用相同的端点,则必须缓存http调用。

您可以在网上找到许多使用RXJS缓存HTTP调用的示例,例如使用 shareReplay 这样的便捷运算符,可以为每个订阅者缓存和重播数据,从而避免了对服务器的多次调用