我需要在English dictionary(大约275,000个关键字)中搜索文本(大约500个字长)来检测非英语单词,现在我正在使用的查询并未真正优化需要10秒以上来执行(有一个words
表和texts
表):搜索多个关键字的文本
SELECT word FROM words WHERE 'The quick brown fox jumps over the lazy dog' LIKE CONCAT('%', word, '%');
上心从here。
我已经将word
字段设置为索引,并查看了将文本存储在数据库中或将其直接放入查询中的人员的一些示例。
其他例子显示人们使用FULLTEXT搜索,尽管有300k字我不认为FULLTEXT将工作,我想用逻辑+brown +lazy -apple
搜索是好的,但在我的情况下,我不需要太多的逻辑。
Another example我见过的是用IN (...)
子句拼接单词,尽管有500m的关键字查询会非常长。
任何想法该怎么办?
眼下文本保存为text
场和InnoDB的话为varchar(50)
与utf8_unicode_ci
编码,我听说InnoDB的速度很慢,所以我可以使用MyISAM或任何其他。我使用MySQL 5.5,但如果有帮助,我可以更新到5.6。
是否需要用mysql来完成? – baao
这是一个PHP/MySQL网站 – Kenzier