Hello,
was auf Seiten der Datenbank möglich ist, hat Dedlfix schon geschrieben: Transaktion.
Die hat aber auch nur Sinn, wenn das PHP-Script nicht abgebrochen wird. Sonst sind nachher lauter unbeendete Transaktionen vorhanden.
Damit das Script nicht abgebrochen wird, wennn das Browserfenster geschlossen wird, sollte man
http://de2.php.net/manual/en/function.ignore-user-abort.php
beachten.
Außerdem emphielt es sich, das Binary Log der Datenbank zu aktivieren. Aber für die Transaktionsverwaltung benötigt man das mWn sowieso.
Wenn Statementfolgen zu langsam abgearbeitet werden, kann das auch an der Indizierung liegen. Stelle fest, ob z.B. viele Löschungen stattfinden. Dann könnte man die Ausführung oder auch die Reindexierung zurückstellen.
siehe http://dev.mysql.com/doc/refman/5.1/de/delete.html
- Low Priority
- Delete Quick / Optimize Table
und es lohnt sich oft, das Datenmodell zu überdenken und einen "Delete-Merker" einzufügen, sodass Löschungen nicht physisch sondern erstmal nur logisch durchgeführt werden. Das spart enorm viel Zeit. Allrdings muss man diese logische Löschart in allen Statements berücksichrtigen.
Viele Einzelne Statements, die einen logischen Zusammenhang haben, bedürfen außerdem einer intensiven Berücksichtigung konkurrierdender Requests. Anderenfalls ist die Integrität der Datenbank massiv gefährdet.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg