5 milioni di record? un'inezia... a meno che le query siano fatte con i piedi. Per dirti: prendi un server hp con uno xeon 6 core a 2.6ghz, mettici sopra 16 gb di ram, prendi un database con due tabelle, metti 2 milioni di record in una e 6 milioni di record nell'altra, fai una query con un join tra le due usando un campo testuale, dimenticati di indicizzare tale campo, e vedrai 3000 euro di server morire miseramente con una select. Indicizzando la colonna tutto bene.
Nel tuo caso quindi non dovresti avere molti problemi se il db è fatto bene e le query che fai siano pensate correttamente. Poi l'ottimizzazione del tutto dipende dal tuo applicativo, puoi anche pensare di spostare i record che non servono tutti i giorni in tabelle "archivio" usando cron e trigger o quello che ti pare...
dipende, non c'è una risposta precisa senza una problematica precisa.
as400?![]()