On Fri, Mar 01, 2002 at 02:41:03PM -0800, Jeff Kilbride wrote:
> 
> Does replication hurt MyISAM performance in the same way? If I'm
> running a master that takes all the inserts and one or more slaves
> to take all the select queries, would it be better implemented in
> MyISAM or InnoDB?

It depends. :-)

> I don't need the transaction ability of InnoDB, but if concurrent
> replication affects MyISAM performance in the same way as concurrent
> insert/select ops, it makes me wonder which table type I should use
> on my high insert activity tables. My assumption was MyISAM, but I'm
> not so sure now...

It'll partly depend on the total number of reads you needed to
do--divided by the number of slaves available for the reads.  Let's
assume that you need to do 500 queries per second and 50% of them are
reads, 50% are writes.  Let's further assume that this is simply too
much for a single machine to handle because of MyISAM's poor
concurrency.

One option is to simply switch to InnoDB and take advantage of the
higher concurrency it offers.  This should work quite well in many
cases, but if your traffic needs to grow over time, you'll eventually
hit a bottleneck and need to throw more [expensive] hardware at the
problem.

Another option is to use replication and stick will MyISAM.  The
master can handle the 250 queries/sec of writes.  Then you can add a
few slaves (2 or 3) and distribute the load equally among them (using
DNS round robin, LVS, or a load-balancer from Foundry, Cisco, Alteon,
etc).  Then each slave only needs to handle a fraction of the read
queries and all the write queries, of course.  The advantage here is
that you have a more scalable architecture.  If things get too slow
you can choose between adding more machines, moving to InnoDB, or
both.

In my group at Yahoo Finance, we're currently doing MyISAM with
multiple slaves.  We needed the slaves anyway in case the master dies
and because we wanted copies of the data several thousand miles away.
But we'll be using InnoDB soon as well, so it'll be interesting to see
how things behave.

Ugh, this is a really good question that I don't answer anywhere in my
book yet.  I'll have to add a spot.  Maybe in the replication
section.  Or the "table types" section.  Or both.  Hmm.

Thanks,

Jeremy
-- 
Jeremy D. Zawodny, <[EMAIL PROTECTED]>
Technical Yahoo - Yahoo Finance
Desk: (408) 349-7878   Fax: (408) 349-5454   Cell: (408) 685-5936

MySQL 3.23.47-max: up 23 days, processed 766,998,461 queries (376/sec. avg)

---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to