我最近在观看关于mysql的谷歌讲座,并了解到MySQL不会使用索引进行LIKE '%foo'
次搜索。
我的网站的“实时搜索”(ajax搜索)搜索专栏full_details(TEXT)
,我应该创建一个像full_details_rev(TEXT)
这样的反转版本并将其编入索引吗?
或者我不应该索引大文本字段吗?
答案 0 :(得分:1)
在这种情况下,像Sphinx这样的外部全文索引工具可能更合适。
答案 1 :(得分:1)
对于全文搜索(基本上就是你正在做的事情),fulltext index更有效率 - 对于简短的介绍,请参阅例如this article;谷歌更多。
使用示例(假设有全文索引,否则您只会收到错误):
SELECT some_column FROM yourtable WHERE MATCH (full_details) AGAINST ('foo')
(如果原始的完全与搜索字符串(即'asdfsdafsdfaaaaafoo')
,反向列上的正常索引将对您有所帮助