【发布时间】:2014-09-12 23:12:02
【问题描述】:
我有一个有趣的问题。我们从客户那里收到包含产品及其信息的提要文件。我们在数据库中记录从客户收到的每个提要请求。 问题是给定一个Feed文件,我们需要获取给定Feed文件中具有相同产品列表的所有Feed请求。每个Feed请求都有近200万个候选Feed进行匹配?
【问题讨论】:
标签: database set scalability similarity duplicate-data
我有一个有趣的问题。我们从客户那里收到包含产品及其信息的提要文件。我们在数据库中记录从客户收到的每个提要请求。 问题是给定一个Feed文件,我们需要获取给定Feed文件中具有相同产品列表的所有Feed请求。每个Feed请求都有近200万个候选Feed进行匹配?
【问题讨论】:
标签: database set scalability similarity duplicate-data
让我总结一下问题,只是为了确保我们在同一页上。
应用程序可能会收到一个 Feed 请求,其中包含产品列表。每次发生这种情况时,您将 FR 记录到 db 中,此外您还想检查过去包含相同产品集的所有 FR,对吗?
如果是这样,一个想法是为 FR 中的产品列表生成哈希键。这样,db 中的每个 FR 都有自己的哈希 - 对应于该 FR 包含的产品列表。
例如。
Feed Request 来自应用,其中包含产品 2、1、3。 app对产品标识进行排序:[1, 2, 3],然后生成hash: h([1, 2, 3]) = abc。然后,您只需要查找以前的 FR 同一个产品集,就是生成一个查询:“get all records from feed requests, where 哈希等于 "abc" "。
如果您以正确的方式索引数据,即使有数百万条记录,这种比较也不会很昂贵。
【讨论】: