Re: [postgresql-it] Partizionare tabella. Da quando vale la pena?

  • From: Enrico Pirozzi <sscotty71@xxxxxxxxx>
  • To: postgresql-it <postgresql-it@xxxxxxxxxxxxx>
  • Date: Fri, 03 Oct 2014 11:04:24 +0200

Il 03/10/14 10.47, Francesco Loreti ha scritto:

Salve a tutti.

ho una tabella di history collegata a una serie di progetti che viene
aggiornata molto di frequente da diverse persone.
In meno di 2 anni ha raggiunto quasi 100.000 righe.
Le select generalmente vengono fatte per trimestre, semestre, anno per
risalire alle modifiche effettuate(non posso usare i log).
Diciamo che nel 2012 in 4 mesi ha fatto 10.000 righe(ho fatto un count
dei record), nel 2013 40.000 e nel 2014(a oggi) 45.000. Me ne aspetto
circa 50.000 l'anno per ora ma andrà a salire.

Se volessi partizionarla per avere maggiori prestazioni nelle select
come mi consigliate di fare? Meglio un partizionamento per anno o meno?

Voi eventualmente come vi regolate?

Grazie!!! 
50.000 record all'anno non sono molti, se hai messo gli indici giusti
non dovresti avere problemi,
con un numero così esiguo di record facendo un partitioning potrebbe
essere controproducente,
in quanto potresti avere un calo di prestazioni in caso di join , in
quanto considera che nel momento
 in cui metti in join N tabelle ognuna di esse partizionata, il query
planner trasforma
il join con una serie di join di tipo nested loop con conseguente
materializzazione del dato, per cui andresti
ad introdurre un overhead che non copre il vantaggio dato dal partitioning.
IMHO il partititioning inizia a prenderlo in considerazione quando
raggiungi qualche milione di record per tabella :)

Un saluto
Enrico

-- 
That's one small step for man; one giant leap for mankind

Enrico Pirozzi
Tel.  +39 0861 1855771 - Mob.+39 328 4164437 - Fax  +39 0861 1850310
http://www.pgtraining.com ;<http://www.pgtraining.com-> - 
info@xxxxxxxxxxxxxx
www.enricopirozzi.info - info@xxxxxxxxxxxxxxxxxx
Skype sscotty71 - Gtalk sscotty71@xxxxxxxxx

Other related posts: