Różnica jest tutaj, w drugim wierszu wyjścia EXPLAIN:
-> Sort (cost=27.88..27.89 rows=7 width=198) (actual time=2984.688..2984.692 rows=28 loops=1)
Zauważ, że „rzeczywisty czas” to prawie cały czas trwania zapytania. Sortowanie wymaga nie tylko mnóstwa porównań (tj. kosztu sortowania czegokolwiek), ale także dodatkowego zarządzania danymi, serwer musi skopiować niektóre dane (wiersze lub wskaźniki do wierszy) do tymczasowej lokalizacji, aby można je było posortować bez zakłócania czegokolwiek innego .
Każde zapytanie potrwa dłużej z sortowaniem, chyba że masz szczęście, a sortowanie pasuje do kolejności na dysku, a optymalizator zauważy, że pasują do siebie.