多表与索引行

时间:2011-12-14 16:47:57

标签: sql database performance postgresql schema

我有一个问题是在最近与同事的讨论中提出来的。

假设您有一个包含100,000,000行的表,并且每个行都有一个索引列(varchar)。此列有1000个唯一值,因此每个值都有100,000个与之相关的行。我想找到与其中一个唯一值相关的所有行(我将提供所述值),但也有一些额外的过滤逻辑(不重要)。

在1000个不同的表中存储100,000行,并且只搜索 我需要的表,或者使用上面列出的方法,它会更快,更慢,还是更快?

假设所有表都具有相同的架构。

1 个答案:

答案 0 :(得分:3)

只需要找到你需要的桌子就会更快。这就像要求搜索一本书的ChapterX更快,或者只是给一本只有ChapterX的书。

然而,这是错误的领导。您将如何确定要查询的表? 1000个IF语句,或IF语句的二叉树,以便在10个跃点中到达那里?无论你写什么,我都不希望它们比使用统一表的索引更快。

更不用说1000张桌子的混乱。


有一个用于分区数据的参数(以及时间和地点),但这是一个非常糟糕的例子。