我有一个包含数百万行的关系数据库表,每个行都链接到此表中的数百行。这是一个简单的关系,但当有数百万行时会出现问题。每次添加新行时,都必须扫描整个范围。
是否有更有效的方法来执行此操作?
我确信搜索引擎已经在更大范围内解决了这个问题。 (这个问题有一个术语吗?)
答案 0 :(得分:0)
标准数据库系统将使用索引,以便您可以处理新行而无需对整个数据库进行线性扫描。
传统的文本搜索系统会在批处理中处理大量的影响,例如对所有单词进行排序以构建倒排索引。它会等待一段时间来累积(或从网络上收集)足够的输入以使批量运行变得有价值 - 因此您将批量处理的成本分摊到大量输入上。然后,您可以将处理批处理的结果与累积数据合并到目前为止,或者将其保持分离,并在用户提交查询时搜索多个索引数据块。
如果没有您提出更具体的问题,我无法生成更具体的内容,但您可能会发现从大量输入行中提取关键字并对其进行排序以生成单个已排序关键字列表有助于匹配过程,或者可能在当前存储的所有行中保留关键字的倒排索引。