【问题标题】:Should I use FULLTEXT index for varchar?我应该为 varchar 使用 FULLTEXT 索引吗?
【发布时间】:2013-06-06 09:30:11
【问题描述】:

如果我有这样的结构:

CREATE TABLE IF NOT EXISTS `sheet` (
  `id` int(11) NOT NULL,
  `title` varchar(80) COLLATE utf8_unicode_ci NOT NULL,
  `html` text COLLATE utf8_unicode_ci NOT NULL,
  PRIMARY KEY (`id`),
  KEY `title` (`title`),
  FULLTEXT KEY `html` (`html`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

我需要像这样进行全文搜索查询:

SELECT * FROM `cms`
WHERE MATCH ( title, html) AGAINST ('+psoriasis +categorizacion' IN BOOLEAN MODE)

我应该为title 添加一个全文索引吗?

【问题讨论】:

    标签: mysql indexing full-text-search


    【解决方案1】:

    事实上,您应该修改/替换现有索引,使其涵盖两列(如果您使用WHERE MATCH(title, html)...,而不是`WHERE MATCH(title)... AND MATCH(html)...):

    CREATE TABLE sheet (
        ...
        FULLTEXT KEY title_html (title, html)
        ...
    )
    

    【讨论】:

      猜你喜欢
      • 2011-12-22
      • 2013-01-03
      • 1970-01-01
      • 2017-03-19
      • 2012-01-24
      • 2011-01-01
      • 1970-01-01
      • 2012-06-25
      • 1970-01-01
      相关资源
      最近更新 更多