客户端上处理数据与服务器上处理数据的限制

时间:2020-07-12 10:25:37

标签: postgresql performance electron vuex

对于台式机应用程序(类似ERP的功能),我想知道应该做些什么。

假设两台计算机的性能相同,并且服务器必须处理5-10位客户,没有其他义务。最初加载所有数据(约20.000个对象)并在客户端(电子)上进行过滤,排序等是更好的方法,还是在Axios的后端(golang + postgres)上进行处理是更好的方法。用户界面应尽可能灵活,但也应尽快获取数据。

一项昂贵的操作通过引用ID过滤了15.000个对象。 (例如,一个客户可以有多个订单)

因此,通过使用parentID查询所有这些对象来显示属于“父对象”的对象。

这里有什么更好的选择或更好的选择的普遍答案?做一些假设,例如网络中5毫秒的延迟+ API 20毫秒的延迟+两次填充商店的时间。 在前端,此操作将以哪种数据大小变慢或完全不可持续?

如果不是性能问题,是否还有其他原因要在服务器上执行?

编辑:客户端和服务器在同一本地网络上

1 个答案:

答案 0 :(得分:0)

您特别提到了类似ERP的软件。对于此类软件,您必须仔细考虑一致性的价值:

您的软件需要为所有客户端显示相同的数据吗?

如果答案是肯定的,那么最简单的实现是在服务器上进行数据处理,从而通知所有客户端更改数据。

如果答案是否定的,那么您可以在客户端软件上进行大多数处理。

当然,有一些方法可以在客户端上进行大多数处理,但是仍然具有一致性,但是它们会增加总体设计的复杂性。一种实现是将一个客户端上的更改广播到所有其他客户端。这是大多数多人在线游戏背后的体系结构。

另一种解决此问题的方法是通过git实现:所有客户端上的数据互不相同,但是有一些方法可以将每个客户端数据与服务器同步,从而最终实现一致性。

您还需要考虑的另一项考虑是数据的大小:

从服务器下载所有数据将花费超过几秒钟的时间吗?

如果从服务器下载所有数据花费的时间太长,则UI在启动时将基本无响应。