phpbar.de logo

Mailinglisten-Archive

[php] Verhalten von php bei langandauernden SQL-befehlen

[php] Verhalten von php bei langandauernden SQL-befehlen

Christoph Kramesch - I.D. Solutions kramesch at idsolutions.at
Mon Jan 17 14:28:15 CET 2005


> max_execution_time greift nicht bei externen Prozessen.
> MySQL-Queries sind externe Prozesse.
Danke, das erklärt das Verhalten..

>
> Die Locks. Warum machst du Table Locks? Ist vielleicht InnoDB die
> richtige Storage-Engine für dein Problem (Row-Level-Locking,
> Transaktionen)?
Die Locks werden implizit gesetzt, wenn ich über mysqladmin
mir die processlist ausgeben lasse erscheint etwas wie
(gekürzte Version)

Command | Time  |State                 | Info          |
+-------+-------+----------------------+-------------
 Query  | 53201 | Copying to tmp table | SELECT * FROM table1  LEFT JOIN
... |
 Query  | 8485  | Locked               | UPDATE table1 SET name='....

Anhand dieser Information NEHME ICH AN (ich weiß, glauben heißt nichts
wissen ;) ),
daß das 2. Query anhand eines implizit gesetzten Readlocks des
1. Queries gesperrt ist, da im Script selbst explizit keine Locks
gesetzt werden.

Innodb kann ichnicht setzen weil bei der Config
have_innodb auf NO gesetzt ist.

so long,
Christoph


php::bar PHP Wiki   -   Listenarchive