ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
431
431
EMPFEHLEN
-
Guten Tag gemeinde,
ich habe folgendes Problem.
Ich öffne eine Datenbankverbindung über mysql_pconnect für einen Multithreaded Eventhandler, der ganz schön viel zutun hat. Ab und zu schmiert die aber ab, was ich sher suboptimal finde, da es innerhalb eines Prozesses zu gravierenden Fehlern führen kann.
Ich hatte gehofft, dass die Lösung pconnect zu verwenden mir ein wenig helfen wird, da PHP vom Konzept her ja eigentlich nicht auf Arbeit mit Threads ausgelegt ist, zu mal die Klasse Thread eine eigene Klasse ist, welche auf die Funktionen pcnt und posix zugreift.
Frage: Was kann man dagegen unternehmen, dass die Verbindung andauernd weg fliegt?
Sollte ich MySQLi statt MySQL verwenden? Liegt es möglicherweise daran, dass ich eine Taktung von 10000 Mikrosekunden bei usleep habe, ehe eine Abfrage erstellt wird?(Eigentlich nicht, solange er nur die events abfragt, läuft ja auch alles, nur wenn mehrere Prozesse parallel arbeiten kommt es manchmal zu sowas)
Würde mich sehr über einen Rat freuen.
MfG
scrippi
-
Anmerkung: der Umstieg auf MySQLi hat das problem nicht behoben leider
-
22.12.11 18:19 #3
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
Hi,
hab auf die schnelle mal ne Seite im Handbuch zum MySQL gefunden, eventuell hilft dir das weiter:
http://dev.mysql.com/doc/refman/5.0/en/gone-away.html
Wenn du mit Threads arbeitest, ist deine MySQL-Verbindung auch so ausgelegt, dass eine Abfrage nach der anderen raus geht und nicht mehrere parallel?
In MySQL gibt es auch eine Einstellung in der du die maximale Anzahl an Queries / Benutzer und Stunde einstellen kannst. Eventuell wird dieser Wert überschritten?
Gruß
BKGeändert von Bratkartoffel (22.12.11 um 18:21 Uhr)
Über eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"
-
Hallo,
es könnte auch daran liegen das die Datenmenge zu groß ist die du an den Server schickst.
Ich hatte auch mal dieses Problem, nachdem ich die Querys verkleinert hatte ging es.
Gruß Napofis
-
@Bratkartoffel: Das Problem ist ja, gerade WEGEN den Threads, kann es dazu kommen dass parellele Abfragen passieren. Habe den Mainthread der permanent sich über eine Abfrage Events in die Liste zieht und für jeden Event wird dann ein Thread gestartet, der den abarbeiten soll.
Habe den "Eventquery" der aus 3 UNIONs besteht mal in ein View gepackt so dass ich nur noch "SELECT *FROM v_events" aufrufe.
Auch habe ich die Taktung von 0.01 Sekunden auf 0.1 runtergesetzt, was aber absolut ausreichend ist. Dadurch wurde es auch ein bisschen besser
-
24.12.11 12:27 #6
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
Arbeitest du mit Prepared Statements? Evtl. ist das noch ein Performance-Loch, also ohne PS. Hast du schon mal darüber nach gedacht, Stored Procedures zu verwenden?
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
Ähnliche Themen
-
MySQL Problem mit PHP evt. Server
Von rflx im Forum Relationale DatenbanksystemeAntworten: 23Letzter Beitrag: 09.07.07, 16:23 -
MySQL Problem mit PHP evt. Server
Von rflx im Forum PHPAntworten: 5Letzter Beitrag: 09.07.07, 14:21 -
MySQL Datentransfer von Server zu Server - Problem mit Umlauten
Von ronin im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 25.12.06, 22:16 -
[MySQL Server 5.0] Problem beim SQL-Statement-Bauen
Von Markus_K im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 30.11.06, 09:10 -
MySQL oder Root Server Problem?
Von grubi im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 23.11.05, 11:26





Zitieren

Login





