У меня есть следующая структура базы данных:Желаемая структура индекса в тузде таблице
- идентификатор
- имя
- года
- директор
- выполнение
Пример вход является: (1, «Титаник», 1994, «Джеймс Кэмерон», 02:44:00)
Я хочу, чтобы найти соответствие любых три из четырех критериев, например:
1. name + year + director
2. name + year + runtime
3. year + director + runtime
Если я создал один индекс, это будет достаточно для optimial запросов?
ALTER TABLE myTable ADD INDEX (name, year, director, runtime)
Или, мне нужно создать индекс для каждой комбинации?
ALTER TABLE myTable ADD INDEX (name, year, director)
ALTER TABLE myTable ADD INDEX (name, year, runtime)
ALTER TABLE myTable ADD INDEX (year, director, runtime)
Я бы предпочел использовать первый, но который будет предложен здесь? Почему один предпочтительнее другого? Это таблица InnoDB.
Вы можете добавить полнотекстовый индекс на всех 4-х колонок и поиск с WHERE MATCH (все 4 колонки) ПРОТИВ (прописью) В булевой РЕЖИМЕ – Mihai
@Mihai Я использую InnoDB. – David542
На 5.6 или выше вы можете использовать FULLTEXT на innoDB – Mihai