Um exemplo de como poderíamos ter os dados organizados em um índice secundário seria o que vemos a seguir, com os nomes dos funcionários não mais fisicamente ordenados.
| Bloco físico do disco |
Nome | Sobrenome | Demais campos da tabela... |
|---|---|---|---|
| 1 | |||
| Daniel | Matos Lemos | ... | |
| André | Matias | ... | |
| Eduardo | Martins | ... | |
| Fábio | Lemos Maia | ... | |
| 2 | |||
| Mauro | Lemos | ... | |
| Caio | Costa | ... | |
| Paulo | Gomes | ... | |
| Caio | Ferreira | ... | |
| 3 | |||
| Miriam | Leite | ... | |
| Bernardo | Coelho | ... | |
| Miriam | Felix Coelho | ... | |
| André | Costa | ... | |
| 4 | |||
| Daniel | Costa | ... | |
| Felipe | César | ... | |
| Mauro | Benvindo | ... | |
| André | Leite | ... |
Observe que para um índice secundário, os valores não são organizados sequencialmente.
Quando o bloco de disco apropriado é transferido para um buffer da memória principal, uma pesquisa pelo registro desejado no bloco pode ser executada. Um índice secundário, em geral, precisa de mais espaço de armazenamento e tempo de busca maior do que um índice primário, devido a seu maior número de entradas. Porém, a melhoria no tempo de pesquisa para um registro qualquer é muito maior para um índice secundário do que para um índice primário, visto que teríamos de fazer uma pesquisa linear no arquivo de dados se o índice secundário não existisse. Para um índice primário, poderíamos ainda usar uma pesquisa binária no arquivo principal, mesmo que o índice não existisse.
O próximo exemplo ilustra a melhoria no número de blocos acessados.