【发布时间】:2017-10-27 10:25:14
【问题描述】:
我想知道是否可以在 MySQL 中表的同一列 (varchar) 上同时拥有全文索引和“普通”索引
如果我的理解是正确的,普通索引将用于使用“=”和“like”的查询,而全文只会在我执行“match()”时使用?
感谢您的帮助!
【问题讨论】:
标签: mysql indexing full-text-search
我想知道是否可以在 MySQL 中表的同一列 (varchar) 上同时拥有全文索引和“普通”索引
如果我的理解是正确的,普通索引将用于使用“=”和“like”的查询,而全文只会在我执行“match()”时使用?
感谢您的帮助!
【问题讨论】:
标签: mysql indexing full-text-search
是的,允许在同一列上有多个索引,虽然它在大多数情况下是无用的,但在您的情况下非常有意义。
在使用MATCH...AGAINST 语法查询时,MySQL 确实会使用您的FULLTEXT 索引,其余部分使用普通索引。
【讨论】:
FULLTEXT 索引,您应该使用MATCH...AGAINST 语法显式编码查询,因为这会告诉优化器使用相应的FULLTEXT 索引。所以在你的情况下,它只会做你想做的事。