Ten plan:
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)
Zasadniczo oznacza:
- Korzystanie z indeksu nazwy miejsca_nazwa_miejsca
- Znajdź wiersze pasujące do relacji warunku indeksu =„Menedżer”
- Zachowaj tylko wiersze, które spełniają kryteria timeOfJoining
Podczas kroku 2 strony dysku są dostępne „losowo”, a nie sekwencyjnie, co oznacza, że indeks zawiera adres pasujących wierszy na dysku, a Postgres odwiedza te adresy w kolejności wskazanej przez indeks. (Może to być kosztowne, przy okazji. Czasami planista zdecyduje, że taniej będzie po prostu przeczytać całą tabelę (skanowanie sekwencyjne) lub wsadowe pobrać wszystkie wiersze na stronie, ignorując kolejność wskazaną przez indeks (skanowanie indeksu mapy bitowej).
Uwaga:w tym zapytaniu nie ma złączeń (tabeli). Gdyby był taki, zobaczyłbyś dodatkowe poziomy wcięć. Przeczytaj je od największego do najmniejszego wcięcia.