Michael -

You should see all running queries in the output of SHOW PROCESSLIST.

MyISAM is a multiple-reader/single-writer design, also known as table
locking design - that is to say, you can have lots of threads reading
simultaneously, but only one writing.  Also, when one is writing,
reading threads block and wait for it.  The simplicity lends itself to
speedy operations in many cases, but sometimes you can run into
trouble with it, especially in high volume situations - as you have.

I'd suggest looking for an UPDATE/INSERT/DELETE operation in the
output of SHOW PROCESSLIST next time you see a stall - that is likely
your culprit.

Some workarounds include:
- using INSERT DELAYED syntax
- using LOW PRIORITY UPDATEs
- switching storage engine to InnoDB

HTH,
Dan


On 1/2/07, Michael Katz <[EMAIL PROTECTED]> wrote:
I have a large database, about a million records in some tables, and I
am trying to troubleshoot some stalls in our application.  We have
assumed that slow query speed causes the stalls, however, when my web
app stalls  I do not see the query in process list.  What we see is the
web page stall with a wait indicator and all other queries to the same
tables are in a locked state (using MyISAM) in process list, but our
query is not present in the list.  After 30sec to 1 minute the web page
will render and the locked queries will quickly complete.  My questions
are as follows:

Should a query that takes a long time show up in show full processlist
while it is executing?

If the query is not causing the stalls any clues where to look in the
connection code that could be causing table locks?

Thank You
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