Този план:
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)
По същество означава:
- Използване на индекса Designation_place_name
- Намерете редове, които отговарят на релацията на условието на индекса ='Мениджър'
- Запазете само редове, които отговарят на критериите за timeOfJoining
По време на стъпка 2 се осъществява достъп до страниците на диска "на случаен принцип", а не последователно, което означава, че индексът съдържа адреса на съвпадащи редове на диска и Postgres посещава тези адреси в реда, посочен от индекса. (Това може да бъде скъпо, между другото. Понякога планиращият ще реши, че е по-евтино просто да прочете цялата таблица (последователно сканиране) или групово извличане на всички редове на страница, като същевременно игнорира реда, посочен от индекса (растрово сканиране на индекс).)
Забележка:в тази заявка няма съединявания на (таблица). Ако имаше такъв, щяхте да видите допълнителни нива на отстъп. Прочетете ги от най-малкия към най-малкия отстъп.