当数据库服务器通过索引找到一行时,将会产生额外的成本。索引存储在磁盘上,其各页必须同包含所想要的行的数据页面一起读入内存中。
索引查找是从根页到叶子页进行的。 由于根页使用非常频繁,所以几乎总是能在页缓冲区中找到。在缓冲区中找到叶子页的机会取决于索引的大小、查询的形式和列值重复的频率。如果每个值仅在索引中出现一次且查询是一个连接,那么要连接的每行将需要对索引进行一次非顺序查找,随后还要对表中相关行进行一次非顺序访问。