Evo da i ja nešto kažem, pošto se ovih dana baš bavim sličnim problemom - naša baza je kad sam zadnji put proverio bila cca. 60GB, nedeljni rast je 2-3GB. Ovo govorim čisto kao uvod, da objasnim da znam šta pričam :). Elem, nevezano za bazu koju misliš na kraju uzeti, evo par stvari o kojima vredi razmišljati:
Pre svega, koliko god jak server da kupiš možeš upasti u problem. Šta ako baza postane tolika da je taj mega-giga server ipak ne može opslužiti? Dakle, unapred treba ozbiljno razmotriti rešenja za klastering / replikaciju - ako mene pitaš ne samo pročitati da "to ima", nego testirati, videti kako se ponaša, da li trpi tetet, da li je stabilno... Svi imaju ta rešenja, ali to je nešto za šta praktično ne postoji dokumentacija ili community support, a profesionalni setup/support se masno plaća.
Drugo veliko pitanje je sigurnosna kopija podataka - bekap tako velike baze se ne da baš brzo napraviti. Dakle, treba proveriti da li baza podržava neku vrstu hot-backup-a, kako sve to radi, koje je vreme potrebno za restore, postoji li point-in-time recovery, itd. Ponovo, community support je slab, jer takva stvar ne treba mnogim ljudima.
Na kraju, vredi i dobro proveriti kakvi alati su na raspolaganju za datu bazu. Za tako velike baze se sql mora pisati vrlo pažljivo, jer sitnice na kraju odlučuju o ogromnim utrošcima vremena za svaki upit. Potrebno je da na neki način može da se vidi (idealno i da se utiče na) execution plan, da je moguće podesiti parametre query-analyzer-a, da je moguće odrediti prioritet tipova join-a, i slične zezalice.
Za sve o čemu pričam, provera podrazumeva štopericu u ruci, a ne čitanje teorije šta sve baza podržava.
Nadam se da sam bar delimično pomogao,
pozdrav, ss
ps. Eh, da, meni postgresql trenutno radi posao.
pps. Ako uslovi i tehnologija dozvoljava, obavezno razmisli o ORM biblioteci, kasnije može da ti spasi život.
When something is hard to do, then it's not worth doing.