Re: mysql_query blocking
| From: | Daniel Kolbo | Date: | Sat, 27 Jun 2009 23:17:20 +0000 |
| Subject: | Re: mysql_query blocking | ||
| References: | 1 2 3 4 5 6 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-294686@lists.php.net to get a copy of this message | ||
Phpster wrote:
>
>
> Bastien
>
> Sent from my iPod
>
> On Jun 27, 2009, at 4:13 PM, Daniel Kolbo <kolb0057@umn.edu> wrote:
>
>> 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.
>> `
>>
>> --
>> PHP General Mailing List (http://www.php.net/)
>> To unsubscribe, visit: http://www.php.net/unsub.php
>>
>
>
>
> Further thought, do you have indexes on the table?
>
>
> Bastien
>
Yes.
The question is not about MySQL efficiency - i'll leave that to the
MySQL email group.
This question is about putting in place PHP safe guards.
Thanks,
dK