Так если они все бинарным то зачем нужны индексы
Если упростить. У тебя данные в бд лежат одной огромной куче, строка за строкой.
Если ты выбираешь по какому-либо полю без индекса бд читает всю эту кучу и собирает строки, которые тебе подходят.
Если у тебя есть индекс, то это как карта, которая по значению поля может получить указатель на строку.
Т.е. достаточно просто вытащить из индекса указатели, потом по ним получить данные, а не итерироваться по всей куче данных.