【发布时间】:2017-03-12 00:18:00
【问题描述】:
我有一张这样的桌子:
// posts
+----+-------------+-----------------------------+
| id | title | body |
+----+-------------+-----------------------------+
| 1 | First Post | The content of first post |
| 2 | Second Post | The content of second post |
+----+-------------+-----------------------------+
现在我需要同时搜索 title 和 body 列。注意到我想以全文的形式搜索这两列。
我的问题:我需要在这两列上创建一个复合索引还是分别对它们创建两个单一索引?
换句话说,是哪一个?
- 索引:
tb(title,body)|查询:WHERE MATCH(title,body) AGAINST(?,?) - 索引:
t(title), b(body)|查询:WHERE MATCH(title) AGAINST(?) OR MATCH(body) AGAINST(?)
老实说,我无法理解这些的不同^。
我也知道,我的问题的标题与内容不匹配。
【问题讨论】:
-
那是
FULLTEXT tb(title, body)吗?还是INDEX tb(title, body)?前者适用于MATCH;后者没有。