PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Se il conteggio di PostgreSQL (*) è sempre lento, come impaginare query complesse?

Hai letto il titolo di quell'articolo?

Si noti che il seguente articolo si applica solo alle versioni di PostgreSQL precedenti alla 9.2. Le scansioni solo indice sono ora implementate.

Usa 9.2 e generalmente scoprirai di ottenere risultati molto migliori. Leggi la pagina wiki delle scansioni solo indice per i dettagli.

Detto questo, nelle versioni precedenti che utilizzano LIMIT e OFFSET generalmente funziona bene. Puoi stimare il numero di righe (e quindi il numero di pagine) utilizzando le statistiche della tabella se non ti dispiace un po' di variazione. Vedi "Stima del conteggio delle righe" nell'articolo a cui ti sei già collegato.

Impaginazione utilizzando LIMIT e OFFSET è, IMO, comunque un anti-pattern. Molte volte puoi riformulare il tuo codice di impaginazione in modo che utilizzi sort_column > 'last_seen_value' LIMIT 100 , cioè evita l'offset. Questo a volte può comportare notevoli miglioramenti delle prestazioni.