From: | Anthony Sotolongo <asotolongo(at)gmail(dot)com> |
---|---|
To: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, Hellmuth Vargas <hivs77(at)gmail(dot)com> |
Cc: | Lista Postgres ES <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Postgresql siempre prefiere indices btree sobre brin |
Date: | 2019-06-26 21:25:39 |
Message-ID: | 074d49cd-1225-9329-f734-0ebef71551bf@gmail.com |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola Hellmuth, corroborando lo que comenta Alvaro sobre la consulta, un
ejemplo:
create table prueba (i int, fecha timestamp );
insert into prueba
select (random()*10000000)::int, fec from generate_series
('2007-02-01'::timestamp
, '2008-04-01'::timestamp
, '1 min'::interval) as fec;
create index idx_btree on prueba (fecha);
create index idx_brin on prueba using brin (fecha);
ANALYZE prueba ;
EXPLAIN ANALYZE
select * from prueba where fecha ='2007-02-01 00:02:00' ;
--selecciona el btree
"Index Scan using idx_btree on prueba (cost=0.43..11.43 rows=2
width=12) (actual time=0.036..0.044 rows=2 loops=1)"
" Index Cond: (fecha = '2007-02-01 00:02:00'::timestamp without time zone)"
"Planning time: 0.224 ms"
"Execution time: 0.115 ms"
EXPLAIN ANALYZE
select * from prueba where fecha >'2007-02-01 00:02:00' and
fecha <'2007-08-10 00:02:00';
--selecciona el brin
"Bitmap Heap Scan on prueba (cost=151.06..23475.16 rows=550176
width=12) (actual time=0.210..68.213 rows=547198 loops=1)"
" Recheck Cond: ((fecha > '2007-02-01 00:02:00'::timestamp without time
zone) AND (fecha < '2007-08-10 00:02:00'::timestamp without time zone))"
" Rows Removed by Index Recheck: 44802"
" Heap Blocks: lossy=3200"
" -> Bitmap Index Scan on idx_brin (cost=0.00..13.51 rows=1113807
width=0) (actual time=0.185..0.185 rows=32000 loops=1)"
" Index Cond: ((fecha > '2007-02-01 00:02:00'::timestamp without
time zone) AND (fecha < '2007-08-10 00:02:00'::timestamp without time
zone))"
"Planning time: 0.222 ms"
"Execution time: 85.913 ms"
Saludos
El 26-06-19 a las 17:07, Alvaro Herrera escribió:
> Hellmuth Vargas escribió:
>> Hola lista
>>
>> Si sobre una columna de una tabla están definidos tanto un índice btree
>> como un brin el optimizador siempre va a preferir el btree sobre el brin?
> Depende de la consulta, pero en general sí.
>
From | Date | Subject | |
---|---|---|---|
Next Message | Hellmuth Vargas | 2019-06-27 02:05:09 | Re: Postgresql siempre prefiere indices btree sobre brin |
Previous Message | Alvaro Herrera | 2019-06-26 21:07:23 | Re: Postgresql siempre prefiere indices btree sobre brin |