[development] Counterintuitive but true: Caching makes a high-traffic site slower

Khalid B kb at 2bits.com
Thu Dec 29 21:17:41 UTC 2005


MyISAM is really fast compared to other engines. Only  when you are
running  a very high  traffic site does locking contention become an
issue. For small to medium sites,  it should be faster.

MyISAM is the default engine for MySQL.

The  reason of defaulting to MySQL  is  mainly historical. Until
recently ISPs  would not  support other engines, and everyone had to
use MyISAM because that is what their ISP has. This is specially true
in shared hosting.

Nowadays, even shared hosting has InnoDB,  which  is ACID, has
transaction, and row level locking.

The  future of InnoDB with  MySQL is unclear though, now that Oracle
has purchased InnoBase,  the company  that makes InnoDB. This could
mean reduced revenue for MySQL AB which sells non-GPL  versions of
MySQL+InnoDB. We have  to wait and see what happens here.

Not sure about making it the default though ...

On 12/29/05, Bèr Kessels <ber at webschuur.com> wrote:
> I am a sql-clueless person. So can someone explain me why the --- we have
> myisam there, if it performs so bad?
>
> Ber
>
> Op donderdag 29 december 2005 18:24, schreef John Handelaar:
> > In the continuing absence of anywhere to discuss these
> > performance edge-cases (more below)...
> >
> >
> > I've already mentioned recently that MyISAM is the
> > enemy of Drupal performance.  Because it requires a
> > full-table lock, if you have lots of active members
> > logged in at once, the process of posting a comment
> > causes page rendering to cease entirely for several
> > seconds.
> >
> > Onto today's point:
> >
> > The same table-level locking is *lethal* on a heavily-
> > trafficked site which has both
> >
> > a)  Content which alters regularly (like a busy forum),
> >      and
> >
> > b)  Caching turned on.
> >
> >
> > Try turning it off if your slow query log starts showing
> > cache-related things taking 90 seconds (!) or more (!!).
> >
> > And then take a backup of your database and change these
> > table types to InnoDB format.
> >
> > And then start looking at delayed inserts.
> >
> >
> > jh
> >
> >
> > PS:  Still no bigsite/performance forum.  Have we decided
> > that Drupal doesn't *need* to scale?  I missed that meeting.
>


More information about the development mailing list