Sounds like a good job for rrd4j and/or MapDB. Realize you are not limited to just one persistence engine. I always recommend one use MapDB for almost all Items with restoreOnStartup. Then put all Numeric Items (Number, Switch, Contact, DateTime, etc.) that you want historic data and/or charting in rrd4j. Finally, use something like MySQL only for those Items that you want to keep long term accurate data or expose the data to some external software or service.
MapDB only saves the most recent update so it never grows and it supports all OH Item types. rrd4j “compresses” data as it ages by averaging near by values and replacing them all with the average (for example, you may have a value every minute for the past week, one every 15 minutes for the past month, one every hour for six months ago, and so on). This is a good choice for those Items where you may want recent history but don’t care about this compression because rrd4j databases never grow so no need for maintenance.
See this posting for how I configured my persistence in this way:
It is on the roadmap but not yet implemented.