Sono d'accordo con klennepette e Brian, con un paio di avvertimenti.
Se i tuoi dati sono intrinsecamente relazionali e soggetti a query che funzionano bene con SQL, dovresti essere in grado di scalare fino a centinaia di milioni di record senza requisiti hardware esotici.
Dovrai investire nell'indicizzazione, nell'ottimizzazione delle query e nel sacrificio occasionale del modello relazionale nell'interesse della velocità. Dovresti almeno fare un cenno alle prestazioni durante la progettazione delle tabelle, ad esempio preferendo i numeri interi alle stringhe per le chiavi.
Se, tuttavia, hai requisiti incentrati sui documenti, hai bisogno di una ricerca di testo libera o hai molte relazioni gerarchiche, potresti dover cercare di nuovo.
Se hai bisogno di transazioni ACID, potresti riscontrare problemi di scalabilità prima che se non ti interessano le transazioni (anche se è improbabile che ciò influisca su di te nella pratica); se hai transazioni di lunga durata o complesse, la tua scalabilità diminuisce abbastanza rapidamente.
Consiglierei di costruire il progetto da zero tenendo conto dei requisiti di scalabilità. Quello che ho fatto in passato è impostare un ambiente di test popolato con milioni di record (ho usato DBMonster, ma non sono sicuro che sia ancora in circolazione) e testare regolarmente il codice work-in-progress su questo database usando strumenti di test del carico come Jmetro.