我必须对我的完整 InnoDB MySql 数据库的 2 个字段进行文本搜索。过去我用过:
Field1 LIKE %text% OR Field2 LIKE %text%
但是现在我的数据增加了很多,“Like”搜索变得太慢了。所以我开始寻找另一个更好的解决方案。
从现在开始我尝试:
全文索引 (MATCH(...) AGAINST) -> 不支持前导通配符
包含 -> 在 MySql 中不可用(仅 Transact-Sql)
反向全文索引 -> 使用前导通配符,但如果匹配位于中间则不使用
REGEXP -> 并不比 LIKE 快
我使用 MyISAM“影子表”作为全文索引...
我不想使用 Sphinx、Lucene 或 se 等外部搜索引擎
所以我的问题是:有什么我忘记了吗?我正在考虑一个让两个通配符工作的技巧。就像 Oracle 中的上下文索引。或者我不知道……这就是我问的原因;)