Я недавно читал об индексах в MySQL, и некоторые принципы довольно просты, но одна концепция все еще вызывает у меня сомнения: в основном, если в гипотетической таблице, скажем, с 10 столбцами, у нас есть два индексы столбцов (для column01 и column02 соответственно), плюс столбец первичного ключа (некоторый другой столбец), затем они будут использоваться в простом запросе SELECT, подобном этому, или нет:
SELECT * FROM table WHERE column01 = 'aaa' AND column02 = 'bbb'
Глядя на это, мой первый инстинкт говорит мне, что первый индекс будет извлекать набор строк (или первичных ключей в InnoDB, если я правильно понял идею), которые удовлетворяют первому условию, и второй индекс будет получить другой набор. И окончательный набор результатов будет просто пересечением этих двух. В книгах, которые я изучал, я не могу найти ничего об этом конкретном сценарии. Конечно, для этого конкретного запроса один индекс в обоих столбцах кажется наилучшим вариантом, но я пытаюсь понять реальный процесс, стоящий за всем этим, если я попытаюсь использовать два индекса, которые я описал выше.