Souhlasím s klennepette a Brianem - s několika výhradami.
Pokud jsou vaše data ze své podstaty relační a podléhají dotazům, které dobře fungují s SQL, měli byste být schopni škálovat na stovky milionů záznamů bez exotických hardwarových požadavků.
Budete muset investovat do indexování, ladění dotazů a občasného obětování relačního modelu v zájmu rychlosti. Při navrhování tabulek byste měli alespoň kývnout na výkon – například u klíčů upřednostňovat celá čísla před řetězci.
Pokud však máte požadavky zaměřené na dokumenty, potřebujete volné textové vyhledávání nebo máte mnoho hierarchických vztahů, možná budete muset hledat znovu.
Pokud potřebujete transakce ACID, můžete narazit na problémy se škálovatelností dříve, než když se o transakce nestaráte (ačkoli vás to v praxi stále pravděpodobně neovlivní); pokud máte dlouhotrvající nebo složité transakce, vaše škálovatelnost se poměrně rychle snižuje.
Doporučil bych budovat projekt od základu s ohledem na požadavky na škálovatelnost. V minulosti jsem nastavil testovací prostředí naplněné miliony záznamů (použil jsem DBMonster, ale nejsem si jistý, zda to stále existuje) a pravidelně testoval rozpracovaný kód proti této databázi pomocí nástrojů pro testování zátěže, jako je Jmeter.