On Thu, Oct 22, 2009 at 4:14 PM, Philip Thompson <philthathril@xxxxxxxxx> wrote: > Hi all. > > I'm running into a random issue where sometimes it take several minutes (up > to 10 or 15) to complete a query. According to 1 or 2 references, this may > be a mysql bug. These links explain the similar problem I'm experiencing: > > http://forums.mysql.com/read.php?24,57257 > http://forum.percona.com/s/m/790/ > > I did some testing yesterday and this 1 sql statement successfully queried > (in milliseconds) approximately 50,000 times before it took several minutes > to query, which hung all the other processes on the database. Because it > occurs successfully so many times, I know the query is good. > > Is it possible to set a time limit on a single function in PHP? E.g., when I > call mysql_query() and it takes 30 seconds, then quit processing that > function and continue on. I know I could set_time_limit() to a specific > time, but that would cause a fatal error... and I want to be able to catch > it. > > Any thoughts on what direction I should go? Also, I'm going to do some > research to see if a newer version of mysql has fixed this bug. We're > running 5.0.45. > > Thanks, > ~Philip > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > You could use ErrorException and catch that: http://www.php.net/manual/en/class.errorexception.php Or you could just set your own error handler: http://www.php.net/manual/en/function.set-error-handler.php Something I don't know if you've thought of that came to mind, though, is the MySQL query cache. It's entirely likely that you have a query that takes several minutes to run, then is stored in query cache for the next 50,000 iterations of the query. Have you observed this same behavior without the query cache enabled (it also looks like the bug mentioned in the second link - the one that pertains to the 5.0.x branch of mysql - has to do with an overly large query cache)? Based on that post, I'd guess that your next action would be to disable the query cache and determine from there if it's a slow query or actually the bug in MySQL. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php