В дополнение к предыдущему комментарию: некоторые 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? Хорошо, нет, перейдите к следующему ряду.

Ответы на вопрос(2)

Ваш ответ на вопрос