Personally I feel that I have a pretty good understanding on MySQL locking,
however I am confused by the output I've received from "SHOW PROCESSLIST" at
seemingly random times.

At the end of this message is the output from "SHOW FULL PROCESSLIST." ALL
queries from output are shown. ALL WHERE clauses in all currently running
queries are using an index and normally run in under 0.01 sec.

My questions are:

1. How can Id 172387 (row 1) be in state 'end' for 5 seconds (it was already
in this state at Time=1)

2. 172388 id  "updating" and it appears 172407,172409,172415, and 172426 are
all locked waiting for 172388 to finish. It has been in "updating" state for
5+ seconds since Time=1. How can it take so long when no other queries or
using table v

3. Similarly 172404 has been "preparing" and 172406 has been "statistics"
and 172406 has been "updating" since time=1. How can preparing or statistics
take 5 seconds? Note again that these queries are not locked or waiting on
other queries Remember normally these queries take < 0.01 sec. Everything
else is locked waiting for the first 5 unlocked queries

The server is loaded enough that these first 5 'frozen' queries quickly lock
everything else out and the database completely freezes. 3 seconds later
than what is shown below, SHOW PROCESSLIST has hundreds of locked processes.


*************************** 1. row ***************************
     Id:    172387
   Time:    5
  State:    end
   Info:    UPDATE si SET val=val-5 WHERE id=317675
*************************** 2. row ***************************
     Id:    172388
   Time:    5
  State:    updating
   Info:    UPDATE v SET val=val+5,cnt=cnt+1 WHERE id=233822
*************************** 3. row ***************************
     Id:    172404
   Time:    5
  State:    preparing
   Info:    SELECT * FROM s WHERE id=321653
*************************** 4. row ***************************
     Id:    172406
   Time:    5
  State:    statistics
   Info:    SELECT * FROM ad WHERE z='t' ORDER BY seq LIMIT 1
*************************** 5. row ***************************
     Id:    172407
   Time:    5
  State:    Locked
   Info:    UPDATE v SET val=val+5,cnt=cnt+1 WHERE id=236404
*************************** 6. row ***************************
     Id:    172408
   Time:    5
  State:    update
   Info:    INSERT INTO hist VALUES(261366,236313)
*************************** 7. row ***************************
     Id:    172409
   Time:    5
  State:    Locked
   Info:    UPDATE v SET val=val+5,cnt=cnt+1 WHERE id=233823
*************************** 8. row ***************************
     Id:    172410
   Time:    5
  State:    Locked
   Info:    INSERT INTO hist VALUES(265095,233822)
*************************** 9. row ***************************
     Id:    172412
   Time:    4
  State:    statistics
   Info:    SELECT * FROM ad WHERE z='l' ORDER BY seq LIMIT 1
*************************** 10. row **************************
     Id:    172414
   Time:    3
  State:    Locked
   Info:    INSERT INTO hist VALUES(287716,233818)
*************************** 11. row **************************
     Id:    172415
   Time:    3
  State:    Locked
   Info:    UPDATE v SET val=val+5,cnt=cnt+1 WHERE id=233822
*************************** 12. row **************************
     Id:    172418
   Time:    3
  State:    Locked
   Info:    INSERT INTO hist VALUES(306395,234632)
*************************** 13. row **************************
     Id:    172420
   Time:    2
  State:    Sorting result
   Info:    SELECT * FROM idx WHERE id=10523652 ORDER BY cnt
*************************** 14. row **************************
     Id:    172421
   Time:    2
  State:    Sorting result
   Info:    SELECT * FROM idx WHERE id=10523652 ORDER BY cnt
*************************** 15. row **************************
     Id:    172423
   Time:    1
  State:    Locked
   Info:    INSERT INTO hist VALUES(304442,5928601)
*************************** 16. row **************************
     Id:    172424
   Time:    1
  State:    statistics
   Info:    SELECT * FROM ad WHERE z='t' ORDER BY seq LIMIT 1
*************************** 17. row **************************
     Id:    172425
   Time:    1
  State:    Locked
   Info:    INSERT INTO hist VALUES(282924,5681301)
*************************** 18. row **************************
     Id:    172426
   Time:    1
  State:    Locked
   Info:    UPDATE v SET val=val+5,cnt=cnt+1 WHERE id=101086
*************************** 19. row **************************
     Id:    172427
   Time:    1
  State:    Sending data
   Info:    SELECT * FROM plan p
    LEFT JOIN hist h ON p.id=h.id
    LEFT JOIN hist h2 ON p.id=h2.id AND h2.stat='i'
    LEFT JOIN s ON s.id=p.id
    WHERE h.stat IS NULL AND p.id=288135
    ORDER BY seq LIMIT 1
*************************** 20. row **************************
     Id:    172428
   Time:    1
  State:    Locked
   Info:    UPDATE plan SET stat='L' WHERE id=282924
*************************** 21. row **************************
     Id:    172430
   Time:    1
  State:    Locked
   Info:    SELECT * FROM plan p
    LEFT JOIN hist h ON p.id=h.id
    LEFT JOIN hist h2 ON p.id=h2.id AND h2.stat='i'
    LEFT JOIN s ON s.id=p.id
    WHERE h.stat IS NULL AND p.id=355506
    ORDER BY seq LIMIT 1






---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to