Índices sobre constraints foreign key

From: "Ivan Perales M(dot)" <ivan(dot)perales(at)gmail(dot)com>
To: Ayuda Esp PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Índices sobre constraints foreign key
Date: 2017-06-10 01:33:25
Message-ID: CAHMuS072O7uKAO657YGANCw=w0Xg3kZAu5OYTop5K1WirCuY+g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola buenas tardes.

En algun momento del pasado, honestamente no recuerdo si leí o escuché que
postgres por default creaba indices sobre las columnas que tienen un
constraint foreign key. Ya que el rendimiento siempre ha sido óptimo y no
he tenido problemas, realmente no me habia dado a la tarea de investigar al
respecto.

Sin embargo acabo de leer un comentario que dice que ningun rdbms crea
indices sobre éstas columnas por que lo que uno debe crearlos si es
necesario.

Ejecute un explain sobre una tabla que hace referencia a otra y ésto me
arrojo en la salida:

explain select e.id, p.id from productomovimiento as e left join producto p
on p.id = e.producto_id where e.producto_id = 10;

Nested Loop Left Join (cost=0.00..3.28 rows=1 width=8)
Join Filter: (p.id = e.producto_id)
-> Seq Scan on productomovimiento e (cost=0.00..1.00 rows=1 width=8)
Filter: (producto_id = 10)
-> Seq Scan on producto p (cost=0.00..2.26 rows=1 width=4)
Filter: (id = 10)

Estoy viendo que realiza un escaneo secuencial para filtrar los movimientos
de cierto producto, yo esperaria que utilizara un indice. Esto significa
que efectivamente debo crear un indice manualmente en cada columna con el
constraint foreign key? si es así, por que el left join funciona muy rápido
aun cuando se tengan algunos cientos de miles de filas?

Saludos y gracias por su tiempo.
--
Lindolfo Iván Perales Mancinas
Solo existen 10 tipos de personas en el mundo, las que saben binario y las
que no.

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Daymel Bonne 2017-06-10 04:26:43 Re: [pgsql-es-ayuda] Índices sobre constraints foreign key
Previous Message Juan 2017-06-09 17:23:38 error dead lock