首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >分离数据之间的分页

分离数据之间的分页
EN

Stack Overflow用户
提问于 2021-05-31 04:20:40
回答 2查看 142关注 0票数 0

我在这个问题上很麻烦。

我有两个分离的系统。

但是,我需要对一个需要来自系统A的数据的查询来查询来自系统B的一些数据。

来自系统B的数据需要分页(每页20条记录)。

我可以这样做,比如在系统A中获取100条第一条记录,然后在系统B中查询,也许它可以从系统B中获取15条记录,然后我需要在系统A中多取100条以填充系统B的第1页。

但是对于整个页面,我认为我需要遍历系统A中的所有记录才能这样做。

我认为当我在每个系统中都有上百万张记录时,这对prod来说是非常糟糕的。

请帮我解决这个问题。

非常感谢,为我糟糕的英语感到抱歉。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-31 07:24:43

简单回答:使用db视图(并考虑物化视图)。

以system的数据库为例,在数据库上为system构建一个dblink,创建一个连接这两个数据的视图(也考虑物化视图)。如果您有此视图,请在系统A中使用。

如果不能创建dblink,则创建定期读取的etl (每晚?每小时?(取决于您的需求),从system,存储在系统A的数据库中的一个表中,然后在系统A中创建一个视图来使用这些数据。

当您拥有一个系统上的所有数据时,您可以考虑内存数据库中的一些数据(如Redis或类似的数据)来存储关键数据,并能够有效地查询这个“大数据”。

开始编码前要考虑的事项:

  • 总是首先考虑为什么这样做和频率:每分钟有多少次,等等。
  • ,你有数百万的数据,但是数据增长呢?这个数据在一个月内会变成多少?一年?十年?
  • 不对每个客户端请求执行查询,而是在可能时缓存结果。不是每个客户端请求都应该调用两个数据库,并考虑查询会对sytem B产生多大的影响(如果这个系统也有一些限制,石灰率限制等等)。)
  • ,也许您不需要所有的数据(比如所有的列),而是一个数据的子集。不要对任何事情都“加入”,而只是考虑一下你的environment
  • assume真正需要的是什么--真正需要的是真实世界的数据,不要停止在本地机器上/测试最坏的情况:10倍的数据,10倍的频率requests
  • consider --如何记录所有这些信息,以及如何共享这些知识。将一个系统链接到另一个系统总是architecture

中的一个难点。

票数 1
EN

Stack Overflow用户

发布于 2021-05-31 05:30:07

在系统设计方面有多种解决方案。首先,我可以想到的是创建一个表,在那里您可以让id从一个数据库中获取这些数据。一旦获得分页id对两个数据库的查询。在3个查询中,您将获得所需的结果。

第二,我可以想到的是基于id进行切分。我不知道您用例是什么,但是如果您想为用户分页。确保在一个数据库中保存了1个用户数据。在这种情况下,您不需要转到第二个数据库进行查询。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67767873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档