Klasická databáze nenačítá vše do paměti, naopak jedna z podstatných věcí, které databáze dělaly, byla optimalizace umístění dat na disku – aby se využilo vlastností rotačních disků. Na druhou stranu dnes existují databáze, které vše uchovávají jenom v RAM, ty samozřejmě používají jiné datové struktury.
Ideální je, když databáze může pro porovnávání nebo řazení použít právě index. Pokud je dotaz napsaný tak, že databáze musí použít dva různé indexy, které vrátí zhruba stejné množství řádků, a následně je musí spojit (najít jen ty řádky, které jsou v obou indexech), je to jedna z nejnáročnějších operací, které může databáze s indexy dělat. A pokud se takový dotaz provádí častěji, měl by pro něj existovat jeden index, ve kterém databáze dohledá záznamy rovnou. Každopádně ale ani v tomhle případě nemusí databáze načíst všechny záznamy do paměti, prostě jen z indexu postupně načítá obě množiny záznamů a prosívá je tak, aby zbyly jen odkazy na řádky, které jsou v obou množinách. Pokud dotaz vyžaduje nějaká data z tabulky (nestačí data uložená v indexu), postupně pak pro ty nalezené odkazy načítá příslušné záznamy a vrací je klientovi.