gpt4 book ai didi

sql - 从多个表和数据库查询数据的最佳方式是什么?

转载 作者:行者123 更新时间:2023-12-04 22:26:56 25 4
gpt4 key购买 nike

我有 5 个数据库,代表国家的不同地区。在每个数据库中,有几百个表,每个表有 10,000-2,000,000 条交易记录。每个表代表相应地区的客户。这些表中的每一个都具有相同的架构。

我想像查询一张表一样查询所有表。我能想到的唯一方法是创建一个联合所有表的 View ,然后针对它运行我的查询。但是,客户表会一直更改(随着我们获得和失去客户),因此我必须更改我的 View 的查询以包含新表(或删除不再使用的表)。

有没有更好的办法?

编辑

作为对评论的回应,(我也发布了这个作为对答案的回应):

在大多数情况下,我不会删除任何表格,它们将保留用于历史目的。正如我在对一个回复的评论中发表的那样,这个想法是为了减少较小的客户(只有 10,000 条记录的客户)查询他们自己的历史记录所花费的时间。大约有 1000 个客户,平均每行 1,000,000 行(并且还在增长)。如果我要将所有记录添加到一个表中,那么该表中将有近十亿条记录。我还以为我在为 future 做计划,因为当我们有 5000 个客户时,我们没有一张巨型表来保存所有交易记录(这可能是我的想法的错误)。那么,是不是像我这样不分记录比较好呢?我应该把它全部混在一张 table 里吗?对客户 ID 进行索引是否可以防止在为较小的客户查询数据时出现延迟?

最佳答案

我认为您的设计可能已损坏。为什么不使用包含区域和客户列的单个表?

如果我是你,我会考虑重构为一个单独的表,如果有必要(例如为了反向兼容性),我会使用 View 来提供与之前的表相同的信息。


编辑以回答 OP 对此帖子的评论:

只要您使用适当的索引,一个包含 10 000 000 000 行的表就可以了。数据库服务器就是为应对这种容量而构建的。

性能绝对不是将一个这样的表拆分成数千个较小表的正当理由!

关于sql - 从多个表和数据库查询数据的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/752123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com