Snimao sam situaciju u jednoj bazi sa SHOW FULL PROCESSLIST i nasao na ovakvu situaciju (ovo je output iz moje skripte, ne direktno iz mysql-a):
Kôd:
(STATUS: Sending data) SELECT count(*) as count FROM tbl_Articles as a WHERE ((a.created < '2009-05-22 13:06:00')) AND ((a.status > 0)) (COMMAND: Query, TIME: 0)
(STATUS : Locked) UPDATE `tbl_Articles` SET `last_read` ='2009-05-22 13:06:18',`times_read` =50,`today_read` =50 WHERE id = 36317 (COMMAND: Query, TIME: 0)
(STATUS: Locked) SELECT a.* FROM tbl_Articles as a WHERE ((a.id IN ('36282'))) ORDER BY a.id DESC (COMMAND: Query, TIME: 0)
Za UPDATE mi je jasno zasto je lockovan, ali zasto se lockuje i ovaj drugi SELECT ? Zar ne bi on mogao da se odradi laganica, dok ovaj prvi racuna count(*) ?