Problème de performances avec PostgreSQL 14 sur des requêtes géospatiales

MySQL, PostgreSQL, requetes, optimisation
sandra1960
Messages : 34
Inscription : mar. mars 10, 2026 7:25 pm

Problème de performances avec PostgreSQL 14 sur des requêtes géospatiales

Message par sandra1960 »

Bonjour, je galère avec PostGIS sur une requête qui cherche des points dans un rayon de 50km. La table a 3M d'entrées avec un index GIST. EXPLAIN montre un seq scan au lieu d'utiliser l'index... Des idées ?
Le cloud c'est l'ordi de quelqu'un d'autre
mehdi2001
Messages : 599
Inscription : mar. mai 19, 2026 7:24 pm

Re: Problème de performances avec PostgreSQL 14 sur des requêtes géospatiales

Message par mehdi2001 »

As-tu bien fait un VACUUM ANALYZE récemment ? Et vérifié que ta config mémoire est correcte (work_mem, shared_buffers) ? J'ai eu le même souci sur une appli de livraison.
le_julie
Messages : 24
Inscription : mer. déc. 06, 2023 7:24 pm

Re: Problème de performances avec PostgreSQL 14 sur des requêtes géospatiales

Message par le_julie »

Poste ton EXPLAIN complet. Souvent le problème vient d'une condition WHERE mal écrite. Utilises-tu ST_DWithin() ou une bbox ?
sandra1960
Messages : 34
Inscription : mar. mars 10, 2026 7:25 pm

Re: Problème de performances avec PostgreSQL 14 sur des requêtes géospatiales

Message par sandra1960 »

Voici l'EXPLAIN :
```
Gather (cost=1000.00..1254783.67 rows=1 width=32)
-> Parallel Seq Scan (cost=0.00..1253783.57 rows=1 width=32)
Filter: (st_distance(geom, '010100...'::geometry) < 50000)
```
Je n'ai pas fait de VACUUM depuis 1 mois...
Le cloud c'est l'ordi de quelqu'un d'autre
le_julie
Messages : 24
Inscription : mer. déc. 06, 2023 7:24 pm

Re: Problème de performances avec PostgreSQL 14 sur des requêtes géospatiales

Message par le_julie »

Ah ! C'est ça ton problème. st_distance() ne peut pas utiliser l'index. Remplace par ST_DWithin(geom, point, 50000) et tu verras l'index s'utiliser. Et fais un VACUUM ANALYZE d'urgence !
sandra1960
Messages : 34
Inscription : mar. mars 10, 2026 7:25 pm

Re: Problème de performances avec PostgreSQL 14 sur des requêtes géospatiales

Message par sandra1960 »

Merci ! Avec ST_DWithin c'est passé de 12s à 80ms. Je me sens bête... Pourquoi cette différence ?
Le cloud c'est l'ordi de quelqu'un d'autre
mehdi2001
Messages : 599
Inscription : mar. mai 19, 2026 7:24 pm

Re: Problème de performances avec PostgreSQL 14 sur des requêtes géospatiales

Message par mehdi2001 »

ST_DWithin utilise directement la bbox pour filtrer en premier. st_distance calcule la distance exacte pour TOUS les points avant de filtrer. Classique ;)
Répondre