Mysql 全文:这个查询非常慢
我正在使用此查询,但不幸的是,它运行缓慢:Mysql 全文:这个查询非常慢,mysql,full-text-search,Mysql,Full Text Search,我正在使用此查询,但不幸的是,它运行缓慢: SELECT *, (MATCH(`title`) AGAINST ('$word' IN BOOLEAN MODE) * 2 + MATCH(`content`) AGAINST ('$word' IN BOOLEAN MODE) * 2 + MATCH(`url`) AGAINST ('$word' IN BOOLEAN MODE) * 1.1 + MATCH(`desc`) AGAINST ('$word' IN
SELECT *,
(MATCH(`title`) AGAINST ('$word' IN BOOLEAN MODE) * 2
+ MATCH(`content`) AGAINST ('$word' IN BOOLEAN MODE) * 2
+ MATCH(`url`) AGAINST ('$word' IN BOOLEAN MODE) * 1.1
+ MATCH(`desc`) AGAINST ('$word' IN BOOLEAN MODE) * 1.2) * `like`
AS score
FROM `data`
WHERE MATCH(`content`,`desc`,`title`,`url`) AGAINST ('$word' IN BOOLEAN MODE)
ORDER BY `score` DESC LIMIT 1000
数据库的结果是15000。这意味着将执行15000条记录,但查询大约需要25秒的时间。我正在使用PDO。您需要全文索引,否则DBMS每次都需要搜索整个表。这确实会减慢记录的插入速度。请注意,对4列进行全文搜索总是相对较慢
CREATE FULLTEXT INDEX indexTitle ON `data` (title)
CREATE FULLTEXT INDEX indexContent ON `data` (content)
CREATE FULLTEXT INDEX indexURL ON `data` (url)
CREATE FULLTEXT INDEX indexDesc ON `data` (desc)
CREATE FULLTEXT INDEX combinedIndex ON `data` (content, desc, title, url)
那么专门的全文搜索引擎呢?例如Sphinx。请正确设置查询格式。有一个长的水平滚动。请提供表结构,特别是索引,顺便说一句,选择*从来不是一个好主意!这是我的结构:。