我在这个问题上很麻烦。
我有两个分离的系统。
但是,我需要对一个需要来自系统A的数据的查询来查询来自系统B的一些数据。
来自系统B的数据需要分页(每页20条记录)。
我可以这样做,比如在系统A中获取100条第一条记录,然后在系统B中查询,也许它可以从系统B中获取15条记录,然后我需要在系统A中多取100条以填充系统B的第1页。
但是对于整个页面,我认为我需要遍历系统A中的所有记录才能这样做。
我认为当我在每个系统中都有上百万张记录时,这对prod来说是非常糟糕的。
请帮我解决这个问题。
非常感谢,为我糟糕的英语感到抱歉。
发布于 2021-05-31 07:24:43
简单回答:使用db视图(并考虑物化视图)。
以system的数据库为例,在数据库上为system构建一个dblink,创建一个连接这两个数据的视图(也考虑物化视图)。如果您有此视图,请在系统A中使用。
如果不能创建dblink,则创建定期读取的etl (每晚?每小时?(取决于您的需求),从system,存储在系统A的数据库中的一个表中,然后在系统A中创建一个视图来使用这些数据。
当您拥有一个系统上的所有数据时,您可以考虑内存数据库中的一些数据(如Redis或类似的数据)来存储关键数据,并能够有效地查询这个“大数据”。
开始编码前要考虑的事项:
中的一个难点。
发布于 2021-05-31 05:30:07
在系统设计方面有多种解决方案。首先,我可以想到的是创建一个表,在那里您可以让id从一个数据库中获取这些数据。一旦获得分页id对两个数据库的查询。在3个查询中,您将获得所需的结果。
第二,我可以想到的是基于id进行切分。我不知道您用例是什么,但是如果您想为用户分页。确保在一个数据库中保存了1个用户数据。在这种情况下,您不需要转到第二个数据库进行查询。
https://stackoverflow.com/questions/67767873
复制相似问题