PostgreSQL does not choose my indexes well
От | Arcadio Ortega Reinoso |
---|---|
Тема | PostgreSQL does not choose my indexes well |
Дата | |
Msg-id | 35dc90d6-e0c2-13b8-3184-e3db5d854a78@gmail.com обсуждение исходный текст |
Ответы |
Re: PostgreSQL does not choose my indexes well
Re: PostgreSQL does not choose my indexes well |
Список | pgsql-performance |
Hi, I don't understand why postgresql doesn't use clearly the most optimal index for a query in PLAN. Can you help me? create table public.tabla ( cod_tabla bigint not null, tabla varchar(31) not null, constraint pk_tabla primary key (cod_tabla) ); create table public.entidad ( cod_entidad bigint not null, cod_tabla bigint not null, cod_entidad_tabla bigint not null, constraint pk_entidad primary key (cod_entidad), constraint fk_tabla_entidad foreign key (cod_tabla) references public.tabla (cod_tabla) match simple on update cascade on delete cascade ); CREATE INDEX idx_tabla_entidad ON public.entidad USING btree (cod_tabla ASC NULLS LAST); CREATE INDEX idx_entidad_tabla_4 ON public.entidad USING btree (cod_entidad_tabla ASC NULLS LAST) INCLUDE(cod_entidad, cod_tabla, cod_entidad_tabla) WHERE cod_tabla::bigint = 4; SELECT count(*) from entidad; 34.413.354 SELECT count(*) from entidad where cod_tabla = 4; 1.409.985 explain (analyze, buffers, format text) select * from entidad where cod_tabla = 4 Index Scan using idx_tabla_entidad on entidad (cost=0.56..51121.41 rows=1405216 width=20) (actual time=0.037..242.609 rows=1409985 loops=1) Index Cond: ((cod_tabla)::bigint = 4) Buffers: shared hit=12839 Planning Time: 0.158 ms Execution Time: 311.828 ms Why postgresql doesnt use the index idx_entidad_tabla_4????? Thanks in advance
В списке pgsql-performance по дате отправления: