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]