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