RE: Mysql completing Query fast but mysql->query() takes long time to return even single selects/updates

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I see this occurring randomly on different quries with different
indexes/tables.

It appears like php is taking a lot longer than mysql's transmission time to
cache  the result be it  bool TRUE/FALSE or    a select of 1 - 50 records. 
While it does not happen all the time, since  from the MySQL side I can see
how long each step was and how long it  took to even transmit the results to
the php server. I am thinking it a small memory hole we do not normaly see
for some reason but  there are no  sqlng parameters even that seem to be
able to help in this situation. 

Also since this is is not really repeatable  as is occurs only sometimes and
not with a  predictable  frequency it would be very hard to do the roll
back.
Also since its  in the mysql class of functions I cant even debug into it to
try to see much of anything (since its c++ code not userland functions).

David

-----Original Message-----
From: Chris [mailto:dmagick@xxxxxxxxx] 
Sent: Sunday, April 11, 2010 6:26 PM
To: David Murphy
Cc: php-db@xxxxxxxxxxxxx
Subject: Re:  Mysql completing Query fast but mysql->query() takes
long time to return even single selects/updates

David Murphy wrote:
> As you can see  PHP claims  it took 20 seconds for mysql->query() to
return
> but   mysql think is took around 1.0s
> 
>  
> This is from our application 
> I enabled profile in mysql to determine why an update took 20seconds.  As
> you can see  MySQL reported no where near that amount of duration took
> place. 
> Is there any way I can dig into php and determine why  mysql client libs
are
> so slow (this is not using mysqlnd but  mysql-client-libs on CentOS using
> 5.3.2)

Is this a one-off thing or is it happening all the time?

If it's a one-off thing it could be a spurious result (maybe someone 
else was doing a mysqldump when your query ran, the dump blocks your 
query)..

What sort of mysql table is it? if it's innodb you can try it in a 
transaction and roll it back:

begin;
update blah;
rollback;

see how long it takes.

if it takes a short time in the mysql client, then try it in a php 
script from your other server.

-- 
Postgresql & php tutorials
http://www.designmagick.com/


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


[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux