Часто сталкиваюсь с тем, что люди с опытом работы более 3-х лет backend разработчиками про индексы могут рассказать только то, что они ускоряют поиск. Для того, чтобы разобраться в этих вопросах предлагаю использовать аналогии из реального мира. Лично мне это прием очень сильно помогает разбираться в новых для меня областях. Для примера возьмем бумажный телефонный справочник.
Предположим, что внесенные в него ФИО с телефонами идут в порядке добавления записей (сначала добавлен Петров, затем Васичкин, потом Иванов и еще млн других записей). Для того, чтобы найти телефон кого-то конкретного, придется просмотреть весь справочник от начала и до конца, что не очень то удобно. Этот пример представляет собой таблицу с данными без каких-либо индексов (такие таблицы называют кучей). Теперь переделаем справочник так, чтобы в нем все было упорядочено сначала по фамилии, затем по имени, отчеству и номеру телефона. Для поиска телефона нужного нам человека мы открываем справочник посередине. Если на