Este plano:
Index Scan using Designation_place_name on myTable (cost=0.00..67701.36 rows=22043 width=27) (actual time=0.061..3.796 rows=3376 loops=1)
Index Cond: ((relation)::text = 'Manager'::text)
Filter: (timeOfJoining > '1930-10-10 00:00:00+05:53:20'::timestamp with time zone)
Total runtime: 4.082 ms
(4 rows)
Basicamente significa:
- Usando o índice Designation_place_name
- Encontre linhas que se ajustem à relação de condição de índice ='Gerente'
- Mantenha apenas as linhas que correspondem aos critérios timeOfJoining
Durante a etapa 2, as páginas do disco são acessadas "aleatoriamente", em vez de sequencialmente, o que significa que o índice contém o endereço das linhas correspondentes no disco, e o Postgres visita esses endereços na ordem indicada pelo índice. (Isso pode ser caro, aliás. Às vezes, o planejador decidirá que é mais barato apenas ler a tabela inteira (varredura seq) ou buscar em lote todas as linhas em uma página, ignorando a ordem indicada pelo índice (varredura de índice de bitmap).)
Nota:não há junções (tabela) nessa consulta. Se houvesse um, você teria visto níveis extras de recuo. Leia-os do mais recuado para o menos recuado.