Mike, 

Below is an message written a few months back tailing a discussion on
why MyISAM is and is not faster than InnoDB.  Basically my understanding
is that if you have multiple simultaneous updates/inserts, stay away
from MyISAM.  

We switched from MyISAM to InnoDB because of the concurrency issue.
Sometimes we might have upwards of 500 inserts/s (though the current
configuration is causing a backlog and delays).  When these updates were
done via MyISAM it was really slow.  With InnoDB it was much faster (by
a factor I believe).

Also, I have yet to find any documentation to say that if InnoDB doesn't
fit into ram you will see a performance penalty (then again, I haven't
been looking around that much for it).  Can anyone else chime in on
this? 


****** Quoting:

From: Axel Schwenke Date:   Sunday, October 22, 2006
 
There are *no* transactions with MyISAM. If you need transactions, 
go InnoDB. 

MyISAM always locks whole tables. That is: reads and writes are 
mutually exclusive. Concurrent reads are fine, concurrent writes 
are sometimes possible. If you expect concurrent reads and writes 
on your tables -> go InnoDB. OTOH: MyISAM table locks are really, 
really fast. As long as you do not need hundreds of writes per 
second (along with reads on the same table) you can still use 
MyISAM. Reads and writes will be serialized internally, but you 
won't notice. 

Again: performance isn't the only - not even the most important - 
criteria for chosing a storage engine.XL 
-- 
Axel Schwenke, Senior Software Developer, MySQL AB 


> -----Original Message-----
> From: mos [mailto:[EMAIL PROTECTED]
> Sent: Friday, March 02, 2007 7:39 AM
> To: mysql@lists.mysql.com
> Subject: Best update strategy with MyISAM
> 
> I will have an application that will have 1000 20 row selects executed
> every second. The application will also be updating individual rows
> from
> this table at a rate of 100 rows/second. I prefer to use MyISAM
instead
> of
> InnoDb because eventually the table will exceed the amount of memory
on
> the
> machine and InnoDb is too slow if the table doesn't fit into memory.
> 
> With MyISAM:
> 1) Will the updates block the Select statements from executing? If so,
> is
> there a way around it? I don't want to stop the Select's from
executing
> by
> having them wait for an update lock to complete.
> 2) Is it better to update a secondary table and then use a Select with
> a
> join to display the results? Or will it matter?
> 
> TIA
> 
> Mike
> 
> --
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:
> http://lists.mysql.com/[EMAIL PROTECTED]


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

Reply via email to