В дополнение к предыдущему комментарию: некоторые RDMS, такие как Mysql / PostgreSql, могут использовать объединение индексов, если оптимизатор считает, что это хорошая идея. Таким образом, вы можете создать разные индексы для каждого поля или создать несколько составных индексов, таких как field1, field2 и field3, field4. Наконец, вы должны попробовать несколько разных решений и выбрать лучший план объяснения.
я есть такой запрос:
SELECT fields FROM table
WHERE field1='something' OR field2='something'
OR field3='something' OR field4='something'
Каков будет правильный способ индексировать такую таблицу для этого запроса?
Такой запрос занимает целую секунду! У меня есть 1 индекс со всеми 4 этими полями, поэтому я думаю, что mysql сделает что-то вроде этого:
Пройдите через каждую строку в индексе, думая, что это: field1 что-то? Как насчет field2? field3? Field4? Хорошо, нет, перейдите к следующему ряду.