2012-09-28 68 views
0

我有一個有數百萬行的關係數據庫表,每個表都鏈接到數百行。這是一種簡單的關係,但在有數百萬行時會變得有問題。每次添加新行時,都必須掃描整個範圍。快速繪製出數百萬個對象之間關係的算法

是否有更有效的方法來執行此操作?

我相信搜索引擎已經在更大規模上解決了這個問題。 (是否有這種問題的術語?)

+1

你是什麼意思「掃描整個範圍」?您能否給我們提供更多關於您要綁定什麼的信息 - 以*英文*的方式執行此操作,而無需預先執行任何操作。 – Bohemian

+0

每行都基於匹配關鍵字鏈接其他行。當添加新行時,系統必須掃描表中的每一行以查找匹配項。它可能是零個或數百個匹配。 – Jen

+0

它爲什麼「必須找到匹配」?再說一次,你想要做的是什麼英語?忘記「行」,「表」和「數據」。只要告訴我們意圖。 – Bohemian

回答

0

標準數據庫系統將使用索引,以便您可以在不對整個數據庫進行線性掃描的情況下處理新行。

傳統的文本搜索系統會批量處理大量的影響,例如對所有單詞進行排序以構建倒排索引。它需要等待一段時間才能積累(或從網上收集)足夠的輸入,以使批處理運行變得有價值 - 這樣就可以將批處理的成本分攤到大量輸入上。然後,您可以將處理批處理的結果與累積數據合併到一起,也可以將其分開,並在用戶提交查詢時搜索多個索引數據塊。

如果沒有更具體的問題,我無法生成任何更具體的問題,但是您可能會發現從大量輸入行中提取關鍵字並對它們進行排序以生成單個關鍵字列表有助於匹配過程,或者在當前存儲的所有行中保留關鍵字的倒排索引。

相關問題