1
现在我有下面的结构,以找到类似的关键字项目:在InnoDB中查找含有类似关键字的项目?
CREATE TEMPORARY TABLE tmp (FULLTEXT INDEX (keywords)) ENGINE=MyISAM
SELECT object_id, keywords FROM object_search_de;
SELECT object_id
FROM tmp
WHERE MATCH (keywords) AGAINST ('foo,bar') > 1.045;
DROP TEMPORARY TABLE tmp;
因此,根据整体记录的数量和关键字字段的平均大小,这可以得到很慢(60秒以上执行时间处理时间)。我的目标是在1秒内完成这项任务。
除了在TEXT
字段中分隔的关键字逗号之外,我还有一个原子关键字表(意思是两列keyword
和object_id
,直接将一个关键字与一个项关联)。
是否有任何替代方案或顺利解决方案来实现相同的效果,而不诉诸于MyISAM
镜像表?
为什么不在'object_search_de'上有全文索引? –
@GordonLinoff因为它是'InnoDB'表,'InnoDB'不支持全文。 –
我刚刚发现http://stackoverflow.com/questions/1381186/fulltext-search-with-innodb?rq=1,现在我意识到'InnoDB'支持5.6版本的全文。但是,我不确定更新MySQL环境是否会破坏针对早期版本的MySQL构建的其他内容。 –