Vous avez cette ici question:« splain un postgresql me expliquiez
EXPLAIN
SELECT persons.id AS id, ppm.first
FROM myschema.persons
INNER JOIN myotherschema.ppm ON persons.key = ppm.pid
WHERE persons.id = 279759;
La colonne ppm.pid
est une clé primaire et dans l'indice:
CREATE INDEX ppm_pkey_index
ON myotherschema.ppm
USING btree
(pid);
Et voici la EXPLIQUER:
Hash Join (cost=8.31..3105.40 rows=306 width=23)
Hash Cond: (textin(int4out(ppm.pid)) = persons.key)
-> Seq Scan on ppm (cost=0.00..2711.33 rows=61233 width=23)
-> Hash (cost=8.29..8.29 rows=1 width=12)
-> Index Scan using pskey on persons (cost=0.00..8.29 rows=1 width=12)
Index Cond: (id = 279759)
Il ne semble pas utiliser le ppm_pkey_index
du tout: il semble toujours scanner 61,233 lignes Pourquoi est-ce? Est-ce que je le mal interprète? Corollaire: les clés primaires ne sont-elles pas automatiquement indexées dans postgresql? Mon index est-il redondant?
Sauf si vous vous appelez Ricky Riccardo, vous devriez éviter mot "'splain". (Dieu je suis vieux.) –
Je n'ai pas besoin de "diviniser à vous comme pourquoi" splain est tellement génial. – Wells