Ti consiglio di iniziare a partizionamento il tuo tavolo per ID o data. Il partizionamento divide una tabella grande in più tabelle più piccole secondo una logica definita (come dividerla per intervalli di date), il che le rende molto più gestibili in termini di prestazioni e memoria. MySQL 5.1 ha questa funzionalità integrata, oppure puoi implementarla utilizzando soluzioni personalizzate.
Nell'implementare l'archiviazione in un file flat, perdi tutti i vantaggi di un database:non puoi più eseguire query che coinvolgono i dati.