假设我们有一张 People 表(姓名、姓氏、地址、SSN 等)。
我们想找到与指定人员 A“非常相似”的所有行。我想对 A 和表 People 中的所有行进行某种模糊逻辑比较。将有几个模糊推理规则分别在几个列上工作(例如,3 个名称模糊规则,2 个姓氏规则,5 个地址规则)
问题是以下两种方法中哪一种更好,为什么?
将所有模糊规则实现为存储过程,并使用一个繁重的 SELECT 语句来返回与 A“非常相似”的所有行。这种方法可能包括使用 soundex、sim metric 等。
实现一个或多个更简单的 SELECT 语句,该语句返回不太准确的结果,与 A“相当相似”,然后将 A 与所有返回的行(数据库外部)进行模糊比较以获得“非常相似”的行。所以模糊比较将用我最喜欢的编程语言来实现。
表 People 应该有多达 500k 行,我想每天进行大约 500-1000 次这样的查询。我使用 MySQL(但这还有待考虑)。