If there are no holes in the data structure storing the MyISAM data,
this concurrency is possible but as soon as any real-world maintenance
kicks in, those holes will exists and the rules kick in:

 on MyISAM you may have 1 writer OR many readers.
 a write operation  will wait for ongoing read operations to complete
 read requests which arrive while a write is pending will wait until
the write is complete

Because of this, any slow readers have the potential to cause your
insert queues to back up.  INSERT DELAYED is a bandaid at best as it
just moves the problem around.   It can still happen that delayed
inserts can timeout and never get writtien.  Should the server be
interruputed you are in a posiution where your app thinks it wrote
records that never, in fact, made it to the disk.

InnoDB with the appropriate read isolation level (ie. READ_REPEATABLE)
need not suffer from these symptoms.

- michael


On 5/15/07, Dan Nelson <[EMAIL PROTECTED]> wrote:
In the last episode (May 15), Dan Buettner said:
>  Hi Edoardo -
>
>  I think you've been misinformed; MyISAM tables do not support
>  simultaneous read and write operations.  MyISAM is a multiple
>  reader/single writer, table locking design.  You may want to switch
>  to InnoDB tables for that functionality.

MyISAM tables do allow concurrent inserts and selects, by appending the
newly-inserted records to the end of the table:

  http://dev.mysql.com/doc/refman/5.0/en/concurrent-inserts.html

Some things to try would be setting concurrent_insert=2 (to force
concurrent inserts even if there are holes in the table) or setting
low_priority_updates=1 ( to keep inserts from trying to lock the table
when there are pending selects ).  If those don't help, then you may be
forced to switch to InnoDB, or maybe set up replication and run your
reporting queries on the slave.

> http://dev.mysql.com/doc/refman/5.0/en/table-locking.html

--
        Dan Nelson
        [EMAIL PROTECTED]

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




--
 - michael dykman
- [EMAIL PROTECTED]

- All models are wrong.  Some models are useful.


--
- michael dykman
- [EMAIL PROTECTED]

- All models are wrong.  Some models are useful.

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

Reply via email to