【发布时间】:2015-05-06 14:56:00
【问题描述】:
在我的 MySQL 表中,我有唯一的字段名称。然而,该领域的内容收集在不同的地方。因此,由于拼写错误,我可能有 2 条名称非常相似的记录,而不是第二条记录。
现在我想找到那些与另一个条目非常相似的条目。为此,我遍历所有记录,并通过再次遍历所有记录将名称与其他条目进行比较。问题是有超过 15k 条记录需要太多时间。有没有办法更快地做到这一点?
这是我的代码:
for($x=0;$x<count($serie1);$x++)
{
for($y=0;$y<count($serie2);$y++)
{
$sim=levenshtein($serie1[$x]['naam'],$serie2[$y]['naam']);
if($sim==1)
print("{$A[$x]['naam']} --> {$B[$y]['naam']} = {$sim}<br>");
}
}
}
【问题讨论】:
-
如果您避免在每次迭代中计算元素并且将元素的数量存储在变量中,则可能会感觉到一些改进
-
数据库中的列类型是什么?
标签: php mysql performance