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

Numero massimo (utilizzabile) di righe in una tabella Postgresql

Non è solo "un mucchio di accordature (indici, ecc.)". Questo è fondamentale e assolutamente da fare.

Hai pubblicato pochi dettagli, ma proviamo.

La regola è:prova a trovare il working set più comune. Vedi se si adatta alla RAM. Ottimizza l'hardware, le impostazioni del buffer PG/OS e gli indici/cluster PG per esso. Altrimenti cerca gli aggregati o, se non è accettabile e hai bisogno di un accesso completamente casuale, pensa a quale hardware potrebbe scansionare l'intera tabella per te in un tempo ragionevole.

Quanto è grande la tua tabella (in gigabyte)? Come si confronta con la RAM totale? Quali sono le tue impostazioni PG, inclusi shared_buffers e Effective_cache_size? È un server dedicato? Se hai un tavolo da 250 giga e circa 10 GB di RAM, significa che puoi occupare solo il 4% del tavolo.

Esistono colonne comunemente utilizzate per il filtraggio, come stato o data? Riesci a identificare il working set più comunemente utilizzato (come solo il mese scorso)? In tal caso, considera il partizionamento o il clustering su queste colonne e indicizzale definitivamente. Fondamentalmente, stai cercando di assicurarti che la maggior parte del working set possibile rientri nella RAM.

Evita a tutti i costi di scansionare la tabella se non si adatta alla RAM. Se hai davvero bisogno di un accesso assolutamente casuale, l'unico modo in cui potrebbe essere utilizzabile è un hardware davvero sofisticato. Avresti bisogno di una configurazione di memoria/RAM persistente in grado di leggere 250 GB in un tempo ragionevole.