PostgreSQL è già utilizzato da molte aziende che si appoggiano a grandi database. Si suggeriscono le seguenti tecniche:
Quando la dimensione del database supera i 5 GigaByte, le prestazioni delle macchine con cpu a 32 bit decadranno rapidamente. Potete far girare database di 30 GB su cpu a 32 bit, ma le prestazioni saranno scadenti. Le macchine con cpu a 32 bit impongono una limitazione di 2 GB alla RAM, di 2 GB alla dimensione del file system, e altre limitazioni al sistema operativo. Usate il file system speciale per Linux, realizzato da SGI, IBM o HP oppure ext3-fs, per supportare file di dimensioni maggiori di 2 GB su macchine a 32 bit con Linux.
Per database estremamente estesi, è fortemente consigliato l'uso di macchine a 64 bit come le Digital Alpha, Sun Ultra-sparc con cpu a 64 bit, Silicon graphics con cpu a 64 bit, Intel Merced con cpu IA-64, macchine HPUX a 64 bit o macchine IBM a 64 bit. Compilate PostgreSQL per cpu a 64 bit, e potrà gestire database enormi, e grandi query. Inoltre le prestazioni di PostgreSQL, per query su grandi tabelle e grandi database, saranno molto più rapide che su macchine con cpu a 32 bit. Il vantaggio di una macchina a 64 bit, è che potete avere un grandissimo spazio di indirizzamento di memoria, e il sistema operativo può supportare file system molto estesi, può fornire migliori prestazioni con grandi database, può supportare memoria (RAM) molto maggiore, ha maggiori funzionalità, ecc..
Per database estesi è consigliabile utilizzare macchine SMP che abbiano 4, 16 o 32 CPU. Alternativamente potete usare box con 4 o 5 CPU singole; in questo caso si deve ripartire il database in 4 o 5 database separati, ed ogni database girerà su una macchina separata. Ogni CPU sarà connessa con una scheda fast ethernet NIC (100MBit). Per esempio: se avete 200 tabelle in un database, potete distribuire 200 tabelle in 4 database da 50 tabelle l'uno. In tal modo, potete distribuire il carico di lavoro equamente tra 4 macchine diverse. Questa è un'alternativa economica a un box di CPU a 4 vie. Per realizzare ciò, dovreste effettuare 'interrogazioni su database multipli', il montaggio di NFS nella LAN, e 'CREATE VIEW' per tabelle in sola lettura. Così ogni CPU "può vedere" tutti i database, cioè tutte le 200 tabelle. In futuro PostgreSQL potrà fornire supporto per 'Query su database multipli'; questa funzionalità (già presente nel TODO, la lista di cose da fare), potrà apparire nell'imminente versione 7.1. Ad esempio, le query tra database multipli, che usano gli alias 'a' e 'b' per i nomi delle tabelle, possono apparire come segue:
select a.col1, a.col2, b.col4, b.col7 from database1.mia_tabellaa a, database2.mia_tabellab b where a.col1 = b.col3 and a.col4 = b.col9; update mia_tabellaa set col1 = b.col2 from database1.mia_tabellaa a, database2.mia_tabellab b where a.col4 = b.col9;
Un server di duplicazione per grandi aziende è disponibile presso http://www.erserver.com, e da http://www.pgsql.com. L'assistenza è venduta ($$$$) commercialmente da PostgreSQL Inc. Utilizzate un server di duplicazione per fornire ridondanza ed elevata disponibilità. Un server di duplicazione è un prodotto complesso e sofisticato.