我需要在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