mysql:LIKE'%foo'的反向内容col - 良好的做​​法?

时间:2010-06-18 08:37:54

标签: mysql

我最近在观看关于mysql的谷歌讲座,并了解到MySQL不会使用索引进行LIKE '%foo'次搜索。

我的网站的“实时搜索”(ajax搜索)搜索专栏full_details(TEXT),我应该创建一个像full_details_rev(TEXT)这样的反转版本并将其编入索引吗?

或者我不应该索引大文本字段吗?

2 个答案:

答案 0 :(得分:1)

在这种情况下,像Sphinx这样的外部全文索引工具可能更合适。

答案 1 :(得分:1)

对于全文搜索(基本上就是你正在做的事情),fulltext index更有效率 - 对于简短的介绍,请参阅例如this article;谷歌更多。

使用示例(假设有全文索引,否则您只会收到错误):

SELECT some_column FROM yourtable WHERE MATCH (full_details) AGAINST ('foo')

(如果原始的完全与搜索字符串(即'asdfsdafsdfaaaaafoo')

,反向列上的正常索引将对您有所帮助