casanova_test.txt

text/plain

Filename: casanova_test.txt
Type: text/plain
Part: 1
Message: Re: Minmax indexes
$ ./casanova_test.sh 
\timing on
                drop table if exists t1;
Time: 333.159 ms
                create table t1 (i int);
Time: 155.827 ms
                create index t1_i_idx on t1 using minmax(i);
Time: 204.031 ms
                insert into t1 select generate_series(1, 25000000);
Time: 126312.302 ms
        analyze t1;
ERROR:  could not truncate file base/21324/26339_vm to 41 blocks: it's only 1 blocks now
Time: 472.504 ms

\timing on
set enable_bitmapscan=1; explain analyze select i from t1 where i between 10000000 and 10001000;
Time: 0.508 ms
                                                        QUERY PLAN                                                        
--------------------------------------------------------------------------------------------------------------------------
 Bitmap Heap Scan on t1  (cost=32.25..117786.77 rows=125001 width=4) (actual time=1640.520..4465.768 rows=1001 loops=1)
   Recheck Cond: ((i >= 10000000) AND (i <= 10001000))
   Rows Removed by Index Recheck: 24998999
   ->  Bitmap Index Scan on t1_i_idx  (cost=0.00..1.00 rows=125001 width=0) (actual time=65.322..65.322 rows=291 loops=1)
         Index Cond: ((i >= 10000000) AND (i <= 10001000))
 Total runtime: 4466.003 ms
(6 rows)

Time: 4468.943 ms
set enable_bitmapscan=0; explain analyze select i from t1 where i between 10000000 and 10001000;
Time: 0.146 ms
                                                  QUERY PLAN                                                   
---------------------------------------------------------------------------------------------------------------
 Seq Scan on t1  (cost=0.00..485621.80 rows=125001 width=4) (actual time=1158.065..3332.925 rows=1001 loops=1)
   Filter: ((i >= 10000000) AND (i <= 10001000))
   Rows Removed by Filter: 24998999
 Total runtime: 3333.038 ms
(4 rows)