如何有效搜索潜在的大型数据库?

时间:2012-02-12 22:02:03

标签: database performance large-data-volumes

这是一个更多的讨论。

我们有一个多租户系统,并且拥有可以拥有数百万行的表。我们的UI允许用户使用许多不同的搜索标准对这些表执行搜索 - 因此他们可以具有这些标准的任意组合。

在数据库中索引所有这些搜索列或在内存中加载完整的表然后过滤是不切实际的。

有人能指出我正确处理解决此问题的模式/设计的方向吗?

1 个答案:

答案 0 :(得分:0)

我不知道有任何模式可以解决您描述的情况。无限数量的行,完全即席查询,许多同时用户?这不是一个要求;这就是“一切顺利”。

我假设这是一个报告数据库,而不是事务性数据库。数据是只读的。这是对的吗?

具有星型模式的数据仓库将按照精心设计的维度规定查询。用户可以汇总维度(例如,时间维度允许用户累积到日,周,月,季度,年等)。但是这样做的逻辑是在数据库上执行的,并在存储过程中编码。

我要质疑用户在中间层需要数百万行的断言。没有用户可以同时接收数百万行。 Google一次返回25个单个查询返回的数百万个页面。

也许您可以流式传输以分离方式使用的数据集,使用Excel或其他工具进行分析。但这是我能想象到的最佳场景。