Ho una grande quantità di dati del modello meteorologico inseriti in un database PostgreSQL. La macchina ha 8 core e 16 GB di RAM. Sto eseguendo PostgreSQL 9.3 con PostGIS 2.1. Ogni tabella avrà una diversa varietà di dati meteorologici (temperatura, punto di rugiada, vento, ecc.). Ogni tabella avrà 6-7 colonne: latitudine, longitudine, geometria del punto, elevazione, data-ora per cui il modello è rilevante e 1-2 valori di dati di interesse. I dati verranno interrogati principalmente per un rettangolo di selezione per tempo ed elevazione. Ci saranno circa 145.757.360 righe per tabella (i dati più vecchi di adesso non più rilevanti verranno eliminati). Stimo approssimativamente la dimensione dei tavoli in circa 10 GB ciascuno senza indici. (Sono 52 byte di dati più 23 byte di overhead per riga). I dati verranno periodicamente aggiornati / inseriti non appena saranno disponibili i dati del nuovo modello. Nota:
Quindi sto guardando questi due piani:
- Basta indicizzare e raggruppare per (datetime, elevazione) con un indice aggiuntivo per la geometria del punto. Esegui un normale processo cron che elimina le vecchie righe, esegue il vuoto / analisi e ri-cluster.
- Partizione per datetime e quindi cluster e indice per elevazione per tabella con un indice sulla geometria. Esegui un normale processo cron per aggiungere nuove tabelle andando avanti e rilasciando vecchie tabelle.
Ulteriore,
- Quindi, so che far cadere un tavolo è molto più efficiente e cancellare e passare l'aspirapolvere. Ma vedrei un aumento delle prestazioni altrimenti?
- Le partizioni sono appropriate quando tutte le tabelle saranno uniformemente aggiornate e selezionate fino a quando non vengono eliminate come irrilevanti (la documentazione indicava che le partizioni funzionavano meglio quando solo alcune di esse sarebbero state selezionate)?
Durante la consegna dei dati, le selezioni saranno più veloci dell'indice cluster? La risposta cambia se vengono fatte più richieste contemporaneamente?
Grazie. Spero di mettere su tutti i dati necessari. Altrimenti fammi sapere e lo aggiungerò.
xmin
oxmax
, ecc. C'è una caratteristica che potrebbe trasformarla in 9.4 che probabilmente ti entusiasmerà, chiamata indici minmax, che renderà le cose come questa molto più convenienti.