Q:

What to do with old data?

I have a game - virtual soccer manager. It is browser based game. It is split into 'seasons' each of them takes around a half of a real year. The central game element is a soccer match, each team plays around 40-50 matches per season, there are roughly a thousand of teams.
Each match has a lot of match related data: game moments description, amount of experience earned by each team player during each match, etc...
Web site has around 200-600 users in different times and exists almost 8 years. For this time game get a ton of data. All data are saved in MySQL DB (5.1).
My problem is that tables size is growing constantly. It is not the problem on its own, but when I do some data maintenance (add new fields into existing tables, change field type, etc.) it takes a ton of time to execute those queries.
From one side, I don't really want to delete aged data (that is more than 5 years old) as potentially users could be interested in looking into them. from another side, 5 years old and older data are not really concerning and COULD be deleted.
Question: what is good practices for keeping/archiving data in general and for online games in particular?
P.S. Probably I should ask on another site?

A:

If you want to limit table size, I'd suggest to split single large tables into a few distinct separate tables.
For example, say you have a Matches table that records all matches that ever took place.  If only the current season is what is relevant, create 2 tables:  currentSeasonMatches and oldMatches.  When a season is over, move all the old matches to oldMatches and clear currentSeasonMatches.  Or, you could break the data by year: matches2011, matches2012, matches2013.  of course, it all matters how accessible you need that older data to be.
If database server size is an issue, render all the data to an HTML tabular format that viewers can view, and save that on a static HTML page on your website.  mysqldump the old data and put it in a cloud somewhere.

