Los documentos de Django indican que los campos de id creados con AutoField están indexados :
id está indexado por la base de datos y se garantiza que es único.
De manera similar, aplica un índice a cada relación FK.
Sin embargo, en PostgreSQL, mientras que los FK parecen estar indexados, los ID no lo están. Aquí hay un ejemplo:
class TestModelBase(models.Model): name = models.CharField(max_length=50) fkfield = models.ForeignKey(TestModelFK, blank=True, null=True, on_delete=models.CASCADE) m2mfield = models.ManyToManyField(TestModelM2M, related_name='base_m2m') Este modelo parece aplicar el índice fkfield , pero no el autocampo id . De PGAdmin a continuación:
¿Me estoy perdiendo de algo?
PostgreSQL crea automáticamente índices para claves primarias. De los documentos :
Agregar una clave principal creará automáticamente un índice de árbol B único en la columna o grupo de columnas enumeradas en la clave principal, y forzará que las columnas se marquen como NO NULAS.
Parece que PGAdmin no muestra esos índices. Este hilo de la lista de correo es la mejor fuente que pude encontrar.