20 lines
1.2 KiB
Plaintext
Executable File
20 lines
1.2 KiB
Plaintext
Executable File
-- L15 OFFSET deep page (scan-then-discard) — page 100 of 100, offset 1980
|
|
-- FeedKeysetIT.l15ExplainOffsetScansThenDiscardsKeysetSeeksAndNeedsIndex (seed 2000, keyset index present)
|
|
-- SELECT fi.id, fi.first_highlighted_at FROM feed_items fi
|
|
-- ORDER BY fi.first_highlighted_at DESC, fi.id DESC OFFSET 1980 LIMIT 20
|
|
-- 읽기 포인트: 정렬키 인덱스가 있어도 깊은 페이지에선 Seq Scan(2000)+Sort(2000) 로 전량을 훑고 20만 남긴다.
|
|
-- Limit 하위 actual rows=2000 = 결과 20행을 위해 훑은 행(over-scan = offset+20). buffers shared hit=141.
|
|
|
|
Limit (cost=275.61..275.66 rows=20 width=24) (actual time=0.945..0.949 rows=20 loops=1)
|
|
Buffers: shared hit=141
|
|
-> Sort (cost=270.66..275.66 rows=2000 width=24) (actual time=0.759..0.865 rows=2000 loops=1)
|
|
Sort Key: first_highlighted_at DESC, id DESC
|
|
Sort Method: quicksort Memory: 189kB
|
|
Buffers: shared hit=141
|
|
-> Seq Scan on feed_items fi (cost=0.00..161.00 rows=2000 width=24) (actual time=0.124..0.369 rows=2000 loops=1)
|
|
Buffers: shared hit=141
|
|
Planning:
|
|
Buffers: shared hit=5 read=1
|
|
Planning Time: 0.137 ms
|
|
Execution Time: 0.996 ms
|