![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Jr. Member
![]() Registriert seit: 29.06.2009
Alter: 40
Beiträge: 66
|
![]() Hallo Forum,
die meisten Entwickler kennen das: Man schießt im phpMyAdmin eine SQL-Query los die der Datenbank doch etwas mehr Arbeit macht als gewünscht. Der Server ächzt nach mehr Ressourcen und es hilft nur mehr eins: Die Query über die Prozessliste des phpMyAdmin abbrechen. Geht aber meist nicht mehr im gleichen Browser - es wird nix geladen solang die Query nicht fertig ist. Also entweder die Shell angeworfen und die Query von Hand abwürgen, oder den phpMyAdmin in einem anderen Browser starten und die Query in der Prozessliste abbrechen. Der Server ist also noch "da" und Anfragen im anderen Browser dauern nicht länger als sonst. Bei anderen Scripts die auch länger aber ohne DB werkeln, funktionieren mehrere parallele Requests normal. ZB. Wenn ich ein Script mit sleep(20); starte, und danach ein Script mit sleep(3); dann wird sleep(3); nach ungefähr 3 Sekunden fertig, ich kanns parallel zum sleep(20) Script mehrfach aufrufen. Diesen Fall hab ich aber nicht nur bei phpMyAdmin, sondern auch bei selbst geschriebenen PHP Scripts beobachtet. Ich würd gern mal wissen, warum das so ist. Also: Sperrt der Datenbankserver einen Browser aus solang noch eine Query läuft? Geht das nach irgendwelchen Kriterien (zB. Browser wird geblockt, falls ein von ihm gesendeter Request eine Query ausgelöst hat, die schon länger als 10 Sekunden dauert?) Ists gar nicht der DB-Server sondern der Web-Server (bei mir meistens ein Apache)? Wie wird der Browser identifiziert? IP kanns nicht sein, da ein anderer Browser ja normal funktioniert. Aufgrund dieser Tatsache, riechts aber stark nach Session. Kennt jemand den Grund dafür? |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|