I database possono contenere molti (centinaia di) milioni di righe e persino decine di miliardi di essi. Devi solo creare lo schema del database appropriato e dovresti occuparti di una buona indicizzazione.
Ovviamente hai bisogno di abbastanza spazio sul disco. Questo è il problema più importante (ed è necessaria un'attenta stima della capacità del disco richiesta).
BTW (senza conoscere le tue reali esigenze), indovinando un kilobyte per riga, il tuo database si inserirà sicuramente in un singolo disco di terabyte (e più probabilmente solo poche centinaia di gigabyte di disco). Probabilmente vuoi che l'indice si adatti alla RAM (quindi potresti volere un server con forse qualche dozzina di gigabyte)
Potresti usare MySQL o PostGreSQL, ma potresti anche usare SQLite (vedi questa risposta ). Tuttavia, se si hanno più client che accedono (contemporaneamente) allo stesso database, è meglio utilizzare un server RDBMS reale (ad esempio PostGreSQL o MySQL), ma non SQLite. Se vuoi un sacco (ad esempio centinaia) di connessioni simultanee, potresti voler dimensionare in modo appropriato il tuo server (ad esempio, diversi dischi o SSD per migliorare la larghezza di banda I / O, o più RAM).
(Non credo che il tuo caso riguardi un database di grandi dimensioni - lo chiamerò di medie dimensioni, ma non sono un esperto di DB, tuttavia, tieni presente che PostGreSQL, MySQL e anche SQLite tutti reclamano: vedi questo per MySQL, questo per PostGreSQL, questo per SQLite- per essere in grado di gestire multi -terabyte databases)