On Wed, Feb 3, 2010 at 12:18 AM, Ashley Sheridan <ash@xxxxxxxxxxxxxxxxxxxx>wrote: > The problem is where 2 people choose the same instant to perform an > action on your site that inserts a record into your db. The db engine > inserts them one after the other, and then responds about the max(id) to > your PHP script. Then, you now have 2 people who have the same max(id) > retrieved, but one of the values is wrong. > well, i only use getmaxid()s for inserts. the timelag between getmaxid() and the insert is so small it'd take 300-800 insert-requests/sec (on that particular table) before an error condition would arise. in which case, a tested piece of sql would fail, and can be routed through the retry functions . These would imo provide ample timing re-randomization, aswell as a measure of stress-relief for both php and mysql server. You may correct me if i'm wrong :) BTW: php core developers: can we have a sleep() that accepts a float? :)