Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 全文:这个查询非常慢_Mysql_Full Text Search - Fatal编程技术网

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。请正确设置查询格式。有一个长的水平滚动。请提供表结构,特别是索引,顺便说一句,选择*从来不是一个好主意!这是我的结构:。