我正在清理一个我继承的肮脏的数据库,需要“模糊匹配”的名字进行人工审查。我想出了一个可行的解决方案,但速度非常慢-- 15k行上只有7分钟。我觉得我忽略了一些非常简单的解决方案。Smith 5 David Jones7 Natalia LaBrody9 Dave Jones
检查匹配的基础上的前三个和最后五个字母。
背景:我使用Mysql,有数百万的数据,每行有20列,我们有一些复杂的搜索和一些列使用模糊匹配,例如username like '%aaa%',它不能使用mysql索引,除非删除第一个%,但是我们需要模糊匹配来做类似我的解决方案是:添加Elasticsearch作为我们的搜索引擎,在Mysql和Es中插入数据,只在Elasticsearch中搜索数据 我查了Elasticsearch模糊搜索wildcard有效,但许多人不建议使用{
我在MySQL表中有大量的VARCHAR条目(约4000万)。字符串的长度可以在5-80个字符之间。The qick brwn foxThs is another sntence因此,经过一些研究,并给出以下的答案,这将不是那么容易,我可能需要研究模糊匹配。考虑到我的数据现在存储在数据库中,对此有什么好的方法吗?编辑1:尝试使
from table3)order by table1.id 检查上述查询的优化器跟踪优化跟踪成本由于复制-WEEDOUT成本较低,mysql对上述查询采用了复制-WEEDOUT策略.优化器跟踪不计算连接优化部分中磁盘表的成本。如果计算了磁盘表成本,则它将高于第一次匹配。那么final_semijoin_