2016-02-08 1 views
0

Я хотел, чтобы один конкретный столбец был уникальным, а также оптимизирован для поиска и сортировки. Между тем одна и та же колонка должна иметь полнотекстовый поиск. Должен ли я добавить все три типа индексирования (уникальный, индексный и полный текст) вместе в этом столбце или нет?MySQL Уникальная индексация, индексирование и полнотекстовое индексирование. Все вместе или одного достаточно?

Пожалуйста, помогите и спасибо.

--edit

Благодаря @Fuujin для быстрого комментария.

Что делать, если у меня есть следующая индексация, нет необходимости добавлять индексирование индексации ни к одному из них, не так ли?

ALTER TABLE `mytable` ADD UNIQUE (`column_1`, `column_2`); 
+3

Уже ответил здесь: [http://stackoverflow.com/questions/9393234/mysql-unique-field-need-to-be-index](http://stackoverflow.com/questions/9393234/mysql-unique -field-need-to-be-index) – Fuujin

+0

Спасибо. Таким образом, только индексирование индекса является избыточным, не так ли? – SAVAFA

+0

как я понимаю: да. Вот еще больше информации: [см. Здесь] (http://stackoverflow.com/questions/707874/differences-between-index-primary-unique-fulltext-in-mysql) – Fuujin

ответ

1

Одна колонка:

UNIQUE(x) 
FULLTEXT(x) 

Добавление INDEX будет излишним, так как это UNIQUEINDEX.

Две колонки:

UNIQUE(x,y) -- the order depend on what your queries look like (see below) 
FULLTEXT(x,y) 
FULLTEXT(x), FULLTEXT(y) -- may need these (see below) 

WHERE x > 5 AND y = 2 необходим (y,x) Заказать

Если вы ищете только один из двух колонн, таких как MATCH(x) AGAINST(...), то InnoDB, но не MyISAM, нуждается в дополнительных FULLTEXT индексов.

+0

Спасибо @rick. Итак, вы говорите, что если я на MyISAM, для полнотекстового поиска будет достаточно «FULLTEXT (x, y)»? Также вы не упомянули о том, что вы указали не полностью. – SAVAFA

+0

Да на вопрос FT. –

+0

В списке людей, упорядоченных по '(last_name, first_name)', вы можете быстро найти 'last_name = 'James' AND first_name LIKE 'R%'', но гораздо сложнее найти 'first_name = 'Rick' AND last_name LIKE 'J%' '. –

Смежные вопросы