Re: mysql_query blocking
| From: | Daniel Kolbo | Date: | Sat, 27 Jun 2009 20:13:47 +0000 |
| Subject: | Re: mysql_query blocking | ||
| References: | 1 2 3 4 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-294677@lists.php.net to get a copy of this message | ||
Ashley Sheridan wrote:
> On Sat, 2009-06-27 at 16:03 -0400, Daniel Kolbo wrote:
>> Ashley Sheridan wrote:
>>> On Sat, 2009-06-27 at 15:15 -0400, Daniel Kolbo wrote:
>>>> Hello,
>>>>
>>>> When a MySQL table is locked a php call of mysql_query() that requires
>>>> that table will hang as the request blocks at the MySQL server until the
>>>> table is unlocked. Is there a way to stop a mysql_query from hanging
>>>> (by setting a time limit)?
>>>>
>>>> The php.ini directive max_execution_time does not help b/c:
>>>> "Note: The set_time_limit() function and the configuration directive
>>>> max_execution_time only affect the execution time of the script itself.
>>>> Any time spent on activity that happens outside the execution of the
>>>> script such as system calls using system(), stream operations, database
>>>> queries, etc. is not included when determining the maximum time that the
>>>> script has been running."
>>>>
>>>> The my.ini directive table_lock_wait_timeout does not work either b/c
>>>> from MySQL:
>>>> "This variable currently is unused. "
>>>> (I am using mysql v5.1)
>>>>
>>>> I do not want to bluntly stop this from the apache level.
>>>>
>>>> How does one place a time limit on the execution of mysql_query()?
>>>>
>>>> Thanks for your help,
>>>> dK
>>>>
>>>>
>>> It depends on what type of table you have, MyISAM blocks at table level
>>> for instance, while InnoDB locks at row level.
>>>
>>> Thanks
>>> Ash
>>> www.ashleysheridan.co.uk
>>>
>>>
>> I'm using InnoDB.
>> But either way how do you place a time limit on mysql_query()?
>> Thanks,
>> dK
>>
> I've not seen this done before, but it should only be row locking if
> you're using InnoDB. What queries are you running that are affecting a
> script that badly?
>
> Thanks
> Ash
> www.ashleysheridan.co.uk
>
>
I issue a 'lock tables tablename write' and do some work. This is to be
expected. I want a way that to stop mysql_query() from just waiting for
the mysql server.
`