List:MySQL and Perl« Previous MessageNext Message »
From:Gisbert W. Selke Date:February 17 2006 10:39am
Subject:AW: <<Spam-Verdacht>>RE: Table Sizes
View as plain text  
Hi Bill --

> -----Ursprüngliche Nachricht-----
> Von: Logan, David (SST - Adelaide) [mailto:David.Logan@stripped]
> Gesendet: Freitag, 17. Februar 2006 00:11
> For the moment though,
> http://dev.mysql.com/doc/refman/5.0/en/merge-storage-engine.ht
> ml may be
> the way to go. This is totally independent from the DBI/DBD 
> perl modules
> so shouldn't affect any of your scripting. This is also available at
> version 4.?
I'll second David's comments: MERGE tables are minimum effort to set up,
they give you the whole ease of use like one big table (if speed ist not at
a premium for some individual task), and accessing the individual compenent
tables give you maximum speed (but less convenience if you want to access
data that happen to be distributed over the tables). 

It would be worthwhile spending some thought on how you partition the data.
In our case we have upo to some 200 million records in the individual
tables, and currently eight such tables go into one MERGE table. We can
easily divide these by years (part of the primary key), so if we access just
one year's data, we go to the individual table.

As a matter of fact, for our standard application which uses Perl DBI to
generate and execute queries, we find it faster for multiple-year queries to
generatea UNION SELECT on multiple indivdual tables, than to access the
MERGE table directly. Since the queries are programme-generated anyway,
that's not much of a hassle, but if you manually build your queries, you'd
spend more time on typing the UNION than waiting for the engine to access
the MERGE table.

Of course, all this assumes that you have optimized your indexes in the
first place. But even then, partitioning does make sense, no matter what the
pure theory of SQL may say.

\Gisbert
Thread
AW: <<Spam-Verdacht>>RE: Table SizesGisbert W. Selke17 Feb