test.sql
application/sql
create unlogged table t (a bigint, b text) with (fillfactor = 20); insert into t select 1 * a, b from (select r, a, b, generate_series(0,2-1) AS p from (select row_number() over () AS r, a, b from (select i AS a, md5(i::text) AS b from generate_series(1, 5000000) s(i) ORDER BY (i + 16 * (random() - 0.5))) foo) bar) baz ORDER BY ((r * 2 + p) + 8 * (random() - 0.5)); create index idx on t(a ASC) with (deduplicate_items=false); vacuum freeze ; analyze t; explain (analyze, timing off) SELECT * FROM t WHERE a BETWEEN 16150 AND 4540437 ORDER BY a ASC;