I have some large tables (hundreds of millions of rows) that are extremely
active.  They have heavy read and heavy modify activity.  But, all
modifications are only on recent records (data added within the last month
is very volatile, but data earlier than that never changes).

We use the InnoDB engine for these tables because of the high concurrency
(as well as the desire for transactions [potential rollback] on data changes
and inserts).

But, for all the data that's older than a month and never changes, having
it in huge InnoDB tables is very cumbersome (constantly re-backing up all
the old data that never changes, etc.).  Plus, the data from the past six
months is heavily accessed, but older data gets little use and is only
necessary as historic information, so it would be nice to pack it away
using MyISAM compressed tables.

Ideally, what I'd like to do is create packed MyISAM tables of older data,
possibly separated by quarter years, keep the last couple months in an InnoDB
table, and use a single Merge table to access them.  Obviously I can't do
that because Merge tables only span MyISAM tables.

My current plan is to put old data in packed MyISAM tables made accessible
with a single Merge table, put the new data in an InnoDB table, and put my
own frontend on it in my code to do UNIONs between the InnoDB and Merge
tables as necessary.  This is going to be a significant change in my code
(plus a bunch of work to setup the job of transferring data from InnoDB
to next MyISAM table at quarter-rollover time, etc.), so I'd like to know
if anyone else has done something similar and has some suggestions from
their experience.  Or, if there is simply a better approach in general,
then I'd love to hear your suggestions.

Better yet, is there a plan to be able to create Merge tables spanning
different engine types in the future?

-keith



-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to