Dit abonnement:
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)
In feite betekent:
- De Indexation_place_name gebruiken
- Zoek rijen die passen bij de indexvoorwaarderelatie ='Manager'
- Behoud alleen rijen die voldoen aan de timeOfJoining-criteria
Tijdens stap 2 worden schijfpagina's "willekeurig" geopend in plaats van sequentieel, dat wil zeggen dat de index het adres van overeenkomende rijen op schijf bevat, en Postgres bezoekt deze adressen in de volgorde die door de index wordt aangegeven. (Dit kan trouwens kostbaar zijn. Soms besluit de planner dat het goedkoper is om gewoon de hele tabel te lezen (seq-scan) of batchgewijs alle rijen op een pagina op te halen, terwijl de volgorde wordt genegeerd die wordt aangegeven door de index (bitmap-indexscan).)
Let op:er zitten geen (tabel)joins in die query. Als er een was geweest, had je extra inspringniveaus gezien. Lees ze van meest ingesprongen naar minst ingesprongen.