【问题标题】:Mysql: fulltext and normal indexMysql:全文和普通索引
【发布时间】:2017-10-27 10:25:14
【问题描述】:

我想知道是否可以在 MySQL 中表的同一列 (varchar) 上同时拥有全文索引和“普通”索引

如果我的理解是正确的,普通索引将用于使用“=”和“like”的查询,而全文只会在我执行“match()”时使用?

感谢您的帮助!

【问题讨论】:

    标签: mysql indexing full-text-search


    【解决方案1】:

    是的,允许在同一列上有多个索引,虽然它在大多数情况下是无用的,但在您的情况下非常有意义。

    在使用MATCH...AGAINST 语法查询时,MySQL 确实会使用您的FULLTEXT 索引,其余部分使用普通索引。

    【讨论】:

    • 感谢您的回答,MySQL 文档中是否有地方提到了这种行为?
    • 不是真的,这只是一个逻辑假设:当您在同一列上有多个索引时,是 MySQL 优化器选择使用正确的一个。如果它没有使用正确的索引,您可以使用HINTS 强制使用您想要的索引。但是对于FULLTEXT 索引,您应该使用MATCH...AGAINST 语法显式编码查询,因为这会告诉优化器使用相应的FULLTEXT 索引。所以在你的情况下,它只会做你想做的事。
    • 我们的 DBA 刚刚也确认了您所说的 :)
    • @sashok_bg c'est rassurant pour l'entreprise ;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 2013-05-17
    • 1970-01-01
    相关资源
    最近更新 更多