2012-09-28 39 views
0

我有一个有数百万行的关系数据库表,每个表都链接到数百行。这是一种简单的关系,但在有数百万行时会变得有问题。每次添加新行时,都必须扫描整个范围。快速绘制出数百万个对象之间关系的算法

是否有更有效的方法来执行此操作?

我相信搜索引擎已经在更大规模上解决了这个问题。 (是否有这种问题的术语?)

+1

你是什么意思“扫描整个范围”?您能否给我们提供更多关于您要绑定什么的信息 - 以*英文*的方式执行此操作,而无需预先执行任何操作。 – Bohemian

+0

每行都基于匹配关键字链接其他行。当添加新行时,系统必须扫描表中的每一行以查找匹配项。它可能是零个或数百个匹配。 – Jen

+0

它为什么“必须找到匹配”?再说一次,你想要做的是什么英语?忘记“行”,“表”和“数据”。只要告诉我们意图。 – Bohemian

回答

0

标准数据库系统将使用索引,以便您可以在不对整个数据库进行线性扫描的情况下处理新行。

传统的文本搜索系统会批量处理大量的影响,例如对所有单词进行排序以构建倒排索引。它需要等待一段时间才能积累(或从网上收集)足够的输入,以使批处理运行变得有价值 - 这样就可以将批处理的成本分摊到大量输入上。然后,您可以将处理批处理的结果与累积数据合并到一起,也可以将其分开,并在用户提交查询时搜索多个索引数据块。

如果没有更具体的问题,我无法生成任何更具体的问题,但是您可能会发现从大量输入行中提取关键字并对它们进行排序以生成单个关键字列表有助于匹配过程,或者在当前存储的所有行中保留关键字的倒排索引。

相关问题