昨天我有一个question人们建议我用Levenshtein的方法。这是一个缓慢的查询?也许我可以使用别的东西?Levenshtein在MySQL中很慢吗?
1
A
回答
3
+1
LEVENSHTEIN不是一个集成的MySQL函数。它是用户定义的功能。你需要用C编写它。阅读提供的链接到另一个相关的StackOverflow问题。 – 2010-08-09 13:40:32
0
如果你想要它的表现不错,那么规范你的模式。
问题是,为了确定其他数据的相似程度,DBMS必须加载该数据并将其与数据进行比较。所以它必须读取表格中的每一行(除了当前行)以找到“相似”值。它不能使用索引来查找接近数据的数据。
如果,另一方面,你用这样的模式:
CREATE TABLE member (
member_id INT(11),
member_data CLOB,
PRIMARY KEY (member_id));
CREATE TABLE about_member (
member_id INT(11),
metric VARCHAR(10),
value MEDIUMINT(9),
PRIMARY KEY (member_id, metric),
KEY by_value (metric, value, member_id));
请注意,您about_member(1-1-2-2-1)字符串应该被实现为单独的行,例如
member_id metric value
1234 lost 2
1234 won 3
1234 drawn 1
1234 handicap 9
然后,您可以有效地使用索引,例如使用以下查询。
SELECT compare.member_id, SUM(ABS(compare.value-datum.value)) AS difference
FROM about_member compare, about_member datum
WHERE datum.member_id=$MEMBER_TO_COMPARE
AND compare.member_id<>datum.member_id
AND compare.metric=datum.metric
AND compare.metric BETWEEN (datum.metric-1) AND (datum.metric+1) /* tweak here */
GROUP BY compare.member_id;
1
这取决于你的数据集。
我发现只有比较类似长度的字符串,我才能加速它的速度。
字符串长度的相似程度取决于您的数据。
有关于这个问题在这里的文章:http://kerbtier.ch/2008/12/30/levenshtein-to-slow-how-to-speed-it-up
相关问题
- 1. MySql性能很慢
- 2. 的MySQL COUNT很慢
- 3. MySQL的EXISTS()很慢
- 4. 在unityscript中调用脚本很慢吗?
- 5. MYSQL LIMIT LEVENSHTEIN
- 6. MySQL的加入是很慢
- 7. Mysql子查询很慢
- 8. 是ARCGIS 10很慢吗?
- 9. Renderscript很慢,可以吗?
- 10. GLPaint - 它真的很慢吗?
- 11. OpenAtrium真的很慢吗?
- 12. 我的网站很慢吗?
- 13. 教义真的很慢吗?
- 14. MySQL“正在发送数据”很慢
- 15. Mysql select *从哪里primary_key在(1,2 ,, ...)很慢
- 16. 在MySQL中查询速度很快,但在PHP中速度很慢
- 17. Levenshtein到Damerau-Levenshtein
- 18. 使用MySQL数据库很慢
- 19. 为什么我的MySQL查询很慢?
- 20. MySQL的意见查询很慢
- 21. MySQL的净连接池connection.Open()很慢
- 22. mysql选择连接速度很慢
- 23. 的WordPress:LEFT JOIN PHP的MySQL很慢
- 24. MySQL的 - 我的看法是很慢
- 25. PHP:远程MySQL连接速度很慢
- 26. 提取mysql php表格很慢
- 27. MYSQL:由rand()查询顺序很慢
- 28. PHP MySql - 数据加载速度很慢
- 29. MySQL的很慢有20万条记录
- 30. PDO构造函数很慢(mysql)
我想帮助,但问题是非常广阔的。专注于特定的作品会让讨论和提供建议更容易。 – 2010-09-13 19:22:45
如果您有其他问题,请提出一个新问题。不要完全改变你现有的一个。 – Greg 2010-09-13 20:29:43
没有关于它的规则,所以你不能编辑我的帖子。 – 2010-09-14 15:17:38