Принцип везде один: если есть возможность использовать индекс, он используется, если же индекса нет или БД считает его использование не рациональным, осуществляется полное сканирование.
Алгоритмы, как и сами типы индексов бывают разными, в основном B-дерево, хеш таблица, иногда R-дерево (может и k-d дерево тоже встречается, я так сильно не углублялся).
Так вот, вам интересны эти самые алгоритмы? Тогда следует читать "Исскуство программированя" Дональда Кнута. Если же нужны конкретные реализации в серверах БД, то официальную документацию по интересующей вас БД (не забываем, что самая лучшая документация - это исходники).