【问题标题】:Is there an efficient string matching algorithm in MySQL?MySQL中是否有有效的字符串匹配算法?
【发布时间】:2011-09-04 10:47:09
【问题描述】:

有没有实现在 MySQL 中搜索关键字的快速字符串匹配算法?例如Aho-Corasick 或任何其他快速字符串匹配算法。

通常 Aho-Corasick 是用 Java 或任何其他编译语言实现的,但应该可以将其编写为 MySQL 中的存储过程。

谢谢!

【问题讨论】:

    标签: mysql string-matching


    【解决方案1】:

    由于存储过程是图灵完备的,并且您可以使用“游标”循环遍历表中的记录(可能存在一些现有的“WHERE”原因),因此您可以在存储过程中执行此操作。

    存储函数也是可能的。

    然而,MySQL 存储例程语言在程序员的可用性和性能方面都非常糟糕,结果不太可能是简单或快速的。

    所以你最好写一个 MySQL UDF(你可以用任何语言编写,只要你可以让它看起来像一个 C 库)然后让它来代替。

    考虑您的具体要求。我假设带有大量“OR col LIKE ...”标签的查询对您来说效率太低,因为您希望一次匹配数千个模式,对吧?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-03
      • 2014-05-19
      • 2015-07-14
      • 1970-01-01
      • 2010-12-23
      相关资源
      最近更新 更多