Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.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_Indexing_Full Text Search_Full Text Indexing_Fulltext Index - Fatal编程技术网

Mysql 在下面的场景中,是一列全文索引还是多列全文索引?

Mysql 在下面的场景中,是一列全文索引还是多列全文索引?,mysql,indexing,full-text-search,full-text-indexing,fulltext-index,Mysql,Indexing,Full Text Search,Full Text Indexing,Fulltext Index,我有这个表结构,我使用的是MYSQL post` ( `post_id_pk` INT, `title` VARCHAR(100), `description` TEXT, `search_content` TEXT ) 我有一个搜索功能。如果用户在文本框中键入文本,并且如果该单词包含在标题列或描述列的记录中,则应向用户显示相应的帖子。我使用这个查询来获得结果 MATCH (search_content) AGAINST (@searchQuery IN NATURAL LAN

我有这个表结构,我使用的是MYSQL

post` (
  `post_id_pk` INT,
  `title` VARCHAR(100),
  `description` TEXT,
  `search_content` TEXT
)
我有一个搜索功能。如果用户在文本框中键入文本,并且如果该单词包含在标题列或描述列的记录中,则应向用户显示相应的帖子。我使用这个查询来获得结果

MATCH (search_content) AGAINST (@searchQuery IN NATURAL LANGUAGE MODE)
这很好用。我想知道的是你看到“搜索内容”栏了吗?我所做的是,当用户提交一篇文章时,我会同时记录标题、描述数据,并将全文放入“搜索内容”列中。然后,我只为这一列编制了全文索引,而不是将标题和描述列结合起来编制全文索引。那么,从性能角度看,什么是最好的

1) 将两列合并到全文索引并使用它们


2) 全文使用一列(此列应包括两列中的所有数据)

这样做更简单、更有效:

CREATE TABLE post` (
  `post_id_pk` INT,
  `title` VARCHAR(100),
  `description` TEXT,
  -- Leave this out:  `search_content` TEXT
  FULLTEXT(title, description)  -- add this
);
然后


如果您还想只测试
说明
(或仅测试标题),则需要另一个
全文
索引。

将两列数据合并为一列不会获得任何性能提升。继续使用MYSQL所说的。您可以轻松地在两列上添加全文索引。就用它们吧

MATCH(title, description) AGAINST('...' ...)