2013-06-06 4 views
0

Если у меня есть структура вроде этого:Должен ли я использовать индекс FULLTEXT для varchar?

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?

ответ

2

На самом деле вы должны изменить/заменить существующий индекс, так что она охватывает обе колонки (если вы используете WHERE MATCH(title, html)..., в отличие от `WHERE MATCH(title)... AND MATCH(html)...):

CREATE TABLE sheet (
    ... 
    FULLTEXT KEY title_html (title, html) 
    ... 
) 
Смежные вопросы