On Jun 2, 2009, at 21:13, "Daevid Vincent" <dae...@daevid.com> wrote:

I just noticed a horrible thing.

I have a query (report) that can take 15 minutes or more to generate with mySQL. We have > 500 Million rows. This used to be done in real time when we
had less rows, but recently we got a big dump of data that shot it up.

So, noticing via myTop the query taking so long, I closed my web page tab. The query did NOT go away! WTF? So mysqld continued to peg the CPU at 75% to
135% (yes, top shows that if you have quad cpus. *sigh*)

Is there some way to force this to work sanely? Some php.ini or my.cnf file
that has a setting to abort queries when the web page has gone away?

Not sure which mailing list this belongs on so I'll post to both PHP and mySQL. Although it feels this is a PHP problem as it should know that the Apache thread went away and therefore close the mySQL connection and kill the query. Conversely, mysql should know that it's connection (via PHP) went
away and should equally abort. So you're both wrong! :)

Once the query is started, the only way to kill it is to kill the process id in the mysql server.

But I have a question about the db and current size:
1. Do you need all that data currently? If you could archive a portion away, there may be performance gains 2. Can you partition the tables to work with smaller datasets ( could be a performance gain here) ?

PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to